[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.213, Sat Jun 4 23:49:29 2016 UTC revision 1.291, Thu Dec 6 21:36:08 2018 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    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  
28    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
29    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
30      $HOME/jdk/src/jdk10
31      $HOME/jdk/src/jdk11
32      $HOME/jdk/src/jdk12
33    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
34    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
35    
36    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
37    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
38    for $N in 6 7 8 9 ...    for $N in 8 9 10 ...
39    
40    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.  
41  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
42    </description>    </description>
43    
# Line 52  Line 55 
55    
56    
57    <!-- Compilation options -->    <!-- Compilation options -->
   <property name="build.sourcelevel"    value="6"/>  
58    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
59    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
60    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
# Line 63  Line 65 
65    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
66    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
67    <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"/>  
68    
69    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
70    <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 105 
105      <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"
106        unless:set="have.java.base"/>        unless:set="have.java.base"/>
107      <local name="modules"/>      <local name="modules"/>
108      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/>
109      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
110      <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"/>
111      <path id="bootclasspath@{v}" unless:set="modules">      <path id="bootclasspath@{v}" unless:set="modules">
# Line 134  Line 135 
135    <defjdklocations v="7"/>    <defjdklocations v="7"/>
136    <defjdklocations v="8"/>    <defjdklocations v="8"/>
137    <defjdklocations v="9"/>    <defjdklocations v="9"/>
138      <defjdklocations v="10"/>
139      <defjdklocations v="11"/>
140      <defjdklocations v="12"/>
141    
142    <!-- Source locations -->    <!-- Source locations -->
143    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 143  Line 147 
147    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
148    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
149    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
150      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
151      <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
152      <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
153    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
154    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
155    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
# Line 182  Line 189 
189    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
190    
191    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
192    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
193    <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"/>
194    <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"/>
195    <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"/>
196    <!-- 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"/>
197    <!-- <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"/>
198    <property name="java9.docroot.url"      value="http://http://download.java.net/java/jdk9/docs"/>    <property name="java10.docroot.url" value="https://docs.oracle.com/javase/10/docs"/>
199    <!-- Default jdk doc location (latest stable release seems best) -->    <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
200    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <!-- The location of jdk early access docs (RIP) -->
201      <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
202      <!-- <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/> -->
203      <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
204      <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/>
205      <!-- Default jdk doc location (latest stable LTS release seems best) -->
206      <property name="java.docroot.url"   value="${java11.docroot.url}"/>
207    
208    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
209    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 198  Line 211 
211    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
212    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
213    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
214      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
215      <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
216      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
217    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
218    
219    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 230  Line 246 
246    
247      <local name="modules"/>      <local name="modules"/>
248      <condition property="modules">      <condition property="modules">
249        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
250        </condition>
251    
252        <local name="use-doclint"/>
253        <condition property="use-doclint">
254          <not> <equals arg1="@{target}" arg2="7"/> </not>
255      </condition>      </condition>
256    
257      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
# Line 245  Line 266 
266             classpath="${junit.jar}"             classpath="${junit.jar}"
267             includeAntRuntime="false"             includeAntRuntime="false"
268             includeJavaRuntime="false"             includeJavaRuntime="false"
269               encoding="ASCII"
270             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
271             fork="true">             fork="true">
272    
273        <include name="*.java"/>        <include name="*.java"/>
274        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
275        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
276          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
277        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
278        <compilerarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
279        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
280        <javac-elements/>        <javac-elements/>
281    
# Line 263  Line 286 
286            jvm="${java@{target}}"            jvm="${java@{target}}"
287            fork="true">            fork="true">
288          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
289          <jvmarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
290            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
291            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
292            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
293            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
294            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
295          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
296            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
297            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
298    
299          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
300          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
# Line 283  Line 313 
313    </macrodef>    </macrodef>
314    
315    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
316    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
317      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
318        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
319      </patternset>    <macrodef name="defjtregtests">
320    </fileset>      <attribute name="v"/>
321        <sequential>
322    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
323      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
324        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
325      </patternset>      </patternset>
326    </fileset>    </fileset>
327        </sequential>
328      </macrodef>
329    
330    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="12"/>
331      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="11"/>
332        <include name="**/*.java"/>    <defjtregtests v="10"/>
333      </patternset>    <defjtregtests v="9"/>
334    </fileset>    <defjtregtests v="8"/>
335      <defjtregtests v="7"/>
336    
337    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
338    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
339    
340    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
341      <!-- 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"/>  
342      <attribute name="target"/>      <attribute name="target"/>
343      <attribute name="workdir"/>      <attribute name="workdir"/>
344      <attribute name="classes"/>      <attribute name="classes"/>
345        <attribute name="verbose" default="${jtreg.verbose}"/>
346      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
347        <element name="jtreg-elements" optional="true"/>
348    
349      <sequential>      <sequential>
350    
# Line 322  Line 353 
353    
354      <local name="modules"/>      <local name="modules"/>
355      <condition property="modules">      <condition property="modules">
356        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
357      </condition>      </condition>
358    
359      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
360      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
361             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
362             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
363        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
364        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
365        <arg value="-vmoption:-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
366          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
367        <arg value="-agentvm"/>        <arg value="-agentvm"/>
368        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-noreport"/>
369          <arg value="-verbose:@{verbose}"/>
370        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
371        <arg value="-automatic"/>        <arg value="-automatic"/>
372        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
373        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
374        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
375          <jtreg-elements/>
376      </jtreg>      </jtreg>
377      </sequential>      </sequential>
378    </macrodef>    </macrodef>
# Line 356  Line 388 
388    
389    <!-- Main targets -->    <!-- Main targets -->
390    
391    <property name="build.main.java.version" value="9"/>    <!-- Default values: may seem strange ... -->
392      <!-- At runtime, target latest LTS, i.e. jdk11 -->
393      <!-- But at build time, target jdk9, for maximal binary portability -->
394      <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
395        o override-methods=summary
396        o {@systemProperty ...}
397        o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
398        o 8202628: javadoc generates bad links in TestModules.java
399        -->
400      <property name="java.runtime.target" value="11"/>
401      <property name="build.main.java" value="${java11}"/>
402    <property name="build.main.javac" value="${javac9}"/>    <property name="build.main.javac" value="${javac9}"/>
403      <property name="build.main.javadoc" value="${javadoc12}"/>
404      <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
405    
406    <target name="dists"    <target name="dists"
407            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
408            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
409              <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
410    
411    <target name="compile"    <target name="compile"
412            depends="configure-compiler"            depends="configure-compiler"
413            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
414    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
415      <local name="destdir"/>      <local name="destdir"/>
416      <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"/>  
417    
418      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
419    
# Line 389  Line 425 
425             classpath=""             classpath=""
426             includeAntRuntime="false"             includeAntRuntime="false"
427             includeJavaRuntime="false"             includeJavaRuntime="false"
428               encoding="ASCII"
429             executable="${build.main.javac}"             executable="${build.main.javac}"
430             fork="true">             fork="true">
431    
432        <include name="**/*.java"/>        <include name="**/*.java"/>
433        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
434        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
435        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
436        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all,-removal"/>
437          <compilerarg line="--doclint-format html5"/>
438          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
439        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
440        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
441        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
442    
# Line 430  Line 468 
468      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
469      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
470    
471    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
472    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
473    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
474    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
475    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
476      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
477               packagenames="none"               packagenames="none"
478               link="${java9.api.url}"               link="${java.api.url}"
479               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
480               access="${build.javadoc.access}"               access="${build.javadoc.access}"
481               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
482               classpath=""               classpath=""
483               executable="${javadoc9}">               source="${build.main.javadoc.source}"
484                 executable="${build.main.javadoc}">
485    <!-- TODO: JDK-8214571 failonerror = "true" -->
486        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
487          <include name="**/*.java"/>          <include name="**/*.java"/>
488        </fileset>        </fileset>
489        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
490        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
491        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
492  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
493        <arg value="-tag"/>        <arg value="--patch-module=java.base=${src.dir}"/>
494        <arg value="${javadoc.jls.option}"/>  <!-- old school frames via docs/index.html?overview-summary.html -->
495        <arg value="-tag"/>        <arg value="--frames"/>
496        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="--override-methods=summary"/>
497        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
498        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
499        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
500        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
501  <!-- tags added in jdk9 -->  <!-- tags added in jdk9: currently unused -->
502        <arg value="-tag"/>  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
503        <arg value="revised:X"/>  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
       <arg value="-tag"/>  
       <arg value="spec:X"/>  
504      </javadoc>      </javadoc>
505    </target>    </target>
506    
# Line 467  Line 510 
510            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
511    
512    
   <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>  
   
   
513    <target name="clean"    <target name="clean"
514            description="Removes all build products">            description="Removes all build products">
   
515      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
516    </target>    </target>
517    
518    
519    <target name="dist-clean"    <target name="dist-clean"
520            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
521      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
522      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
523    </target>    </target>
524    
525    
# Line 521  Line 538 
538            description="Runs tck tests for src/main directly">            description="Runs tck tests for src/main directly">
539    
540      <run-tck-tests      <run-tck-tests
541        target="${build.main.java.version}"        target="${java.runtime.target}"
542        workdir="${build.dir}"        workdir="${build.dir}"
543        classes="${product.jar}"/>        classes="${product.jar}">
544          <javac-elements>
545            <compilerarg value="-Werror"/>
546          </javac-elements>
547        </run-tck-tests>
548    </target>    </target>
549    
550    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 551  Line 572 
572            depends="jar"            depends="jar"
573            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
574      <run-jtreg-tests      <run-jtreg-tests
575         target="${build.main.java.version}"         target="${java.runtime.target}"
576         workdir="${build.dir}"         workdir="${build.dir}"
577         classes="${product.jar}"/>         classes="${product.jar}"/>
578    </target>    </target>
579    
580    <target name="test"    <target name="test"
581            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
582            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
   
 <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  
583    
584  <!--     <antcall target="jtreg"> -->    <target name="test-version-permutations"
585  <!--       <param name="build.main.java.version" value="8"/> -->            depends="test9, test10, test11, test12, test9-11, test9-12, clean, test, docs">
586  <!--       <param name="build.main.javac" value="${javac8}"/> -->    </target>
 <!--     </antcall> -->  
587    
588  <!--   </target> -->    <target name="test9">
589        <antcall target="clean"/>
590        <antcall>
591          <param name="java.runtime.target" value="9"/>
592          <param name="build.main.javac" value="${javac9}"/>
593          <param name="build.main.javadoc" value="${javadoc12}"/>
594          <param name="build.main.javadoc.source" value="9"/>
595          <target name="test"/>
596          <target name="docs"/>
597        </antcall>
598      </target>
599    
600  <!--   <target name="test89" -->    <target name="test10">
601  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->      <antcall target="clean"/>
602        <antcall>
603          <param name="java.runtime.target" value="10"/>
604          <param name="build.main.javac" value="${javac10}"/>
605          <param name="build.main.javadoc" value="${javadoc12}"/>
606          <param name="build.main.javadoc.source" value="10"/>
607          <target name="test"/>
608          <target name="docs"/>
609        </antcall>
610      </target>
611    
612  <!--     <antcall target="clean"/> -->    <target name="test11">
613  <!--     <antcall target="test"> -->      <antcall target="clean"/>
614  <!--       <param name="build.main.java.version" value="8"/> -->      <antcall>
615  <!--       <param name="build.main.javac" value="${javac8}"/> -->        <param name="java.runtime.target" value="11"/>
616  <!--     </antcall> -->        <param name="build.main.javac" value="${javac11}"/>
617          <param name="build.main.javadoc" value="${javadoc12}"/>
618          <param name="build.main.javadoc.source" value="11"/>
619          <target name="test"/>
620          <target name="docs"/>
621        </antcall>
622      </target>
623    
624  <!--     <antcall target="clean"/> -->    <target name="test12">
625  <!--     <antcall target="test"> -->      <antcall target="clean"/>
626  <!--       <param name="build.main.java.version" value="9"/> -->      <antcall>
627  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="java.runtime.target" value="12"/>
628  <!--     </antcall> -->        <param name="build.main.javac" value="${javac12}"/>
629          <param name="build.main.javadoc" value="${javadoc12}"/>
630          <param name="build.main.javadoc.source" value="12"/>
631          <target name="test"/>
632          <target name="docs"/>
633        </antcall>
634      </target>
635    
636  <!--   </target> -->    <target name="test9-11">
637        <antcall target="clean"/>
638        <antcall>
639          <param name="java.runtime.target" value="11"/>
640          <param name="build.main.javac" value="${javac9}"/>
641          <param name="build.main.javadoc" value="${javadoc12}"/>
642          <param name="build.main.javadoc.source" value="9"/>
643          <target name="test"/>
644          <target name="docs"/>
645        </antcall>
646      </target>
647    
648      <target name="test9-12">
649        <antcall target="clean"/>
650        <antcall>
651          <param name="java.runtime.target" value="12"/>
652          <param name="build.main.javac" value="${javac9}"/>
653          <param name="build.main.javadoc" value="${javadoc12}"/>
654          <param name="build.main.javadoc.source" value="9"/>
655          <target name="test"/>
656          <target name="docs"/>
657        </antcall>
658      </target>
659    
660    
661    <target name="configure-compiler">    <target name="configure-compiler">
662      <fail message="ant version too old">      <fail message="ant version too old">
663        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
664      </fail>      </fail>
665    
666      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 611  Line 678 
678    </target>    </target>
679    
680    
   
   <!-- 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}"  
              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>  
   
   
681    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
682            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
683    
684      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
685    
# Line 654  Line 690 
690             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
691             includeAntRuntime="false"             includeAntRuntime="false"
692             includeJavaRuntime="false"             includeJavaRuntime="false"
693             executable="${javac9}"             encoding="ASCII"
694               executable="${build.main.javac}"
695             fork="true">             fork="true">
696    
697        <include name="*.java"/>        <include name="*.java"/>
# Line 662  Line 699 
699        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
700        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
701        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
702      </javac>      </javac>
   
703    </target>    </target>
704    
705    
# Line 687  Line 722 
722             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
723             includeAntRuntime="false"             includeAntRuntime="false"
724             includeJavaRuntime="false"             includeJavaRuntime="false"
725               encoding="ASCII"
726             executable="${javac8}"             executable="${javac8}"
727             fork="true">             fork="true">
   
728        <include name="**/*.java"/>        <include name="**/*.java"/>
729        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
730        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
731        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
732        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
733        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
734      </javac>      </javac>
735    </target>    </target>
736    
# Line 717  Line 751 
751             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
752             includeAntRuntime="false"             includeAntRuntime="false"
753             includeJavaRuntime="false"             includeJavaRuntime="false"
754               encoding="ASCII"
755             executable="${javac8}"             executable="${javac8}"
756             fork="true">             fork="true">
   
757        <include name="**/*.java"/>        <include name="**/*.java"/>
758        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
759        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
760        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
761        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
762        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
763      </javac>      </javac>
764    </target>    </target>
765    
# Line 742  Line 775 
775          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
776        </manifest>        </manifest>
777      </jar>      </jar>
   
778    </target>    </target>
779    
780    
# Line 758  Line 790 
790          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
791          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
792          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
793            <compilerarg value="-Werror"/>
794        </javac-elements>        </javac-elements>
795      </run-tck-tests>      </run-tck-tests>
796    </target>    </target>
# Line 775  Line 808 
808    
809    <target name="4jdk8-test"    <target name="4jdk8-test"
810            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
811            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
812    
813    
814    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 792  Line 824 
824               access="${build.javadoc.access}"               access="${build.javadoc.access}"
825               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
826               classpath=""               classpath=""
827                 source="8"
828               executable="${javadoc8}"               executable="${javadoc8}"
829               failonerror = "true">               failonerror = "true">
830        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 799  Line 832 
832        </fileset>        </fileset>
833        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
834        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
835        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
836        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
837        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
838        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!-- @apiNote tag currently unused -->
839        <arg value="-tag"/>  <!--  <arg value="-tag"/> <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
       <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;"/>  
840      </javadoc>      </javadoc>
841    </target>    </target>
842    
# Line 818  Line 848 
848    
849    <target name="4jdk8clean"    <target name="4jdk8clean"
850            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
851      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
852    </target>    </target>
853    
854    
# Line 836  Line 864 
864    </target>    </target>
865    
866    
867      <!-- jsr166 4jdk7 (no longer maintained) -->
868    
869    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
870      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
871    
872      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 856  Line 880 
880             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
881             includeAntRuntime="false"             includeAntRuntime="false"
882             includeJavaRuntime="false"             includeJavaRuntime="false"
883               encoding="ASCII"
884             executable="${javac7}"             executable="${javac7}"
885             fork="true">             fork="true">
886    
# Line 865  Line 890 
890        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
891        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
892        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
893      </javac>      </javac>
894    </target>    </target>
895    
896    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
897      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
898    
899      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 886  Line 907 
907             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
908             includeAntRuntime="false"             includeAntRuntime="false"
909             includeJavaRuntime="false"             includeJavaRuntime="false"
910               encoding="ASCII"
911             executable="${javac8}"             executable="${javac8}"
912             fork="true">             fork="true">
913    
# Line 895  Line 917 
917        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
918        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
919        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
920      </javac>      </javac>
921    </target>    </target>
922    
923      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
924      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
925        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
926        <manifest>        <manifest>
# Line 911  Line 928 
928          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
929        </manifest>        </manifest>
930      </jar>      </jar>
   
931    </target>    </target>
932    
933      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
934      <run-tck-tests      <run-tck-tests
935        target="7"        target="7"
936        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 936  Line 948 
948          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
949          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
950          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
951            <compilerarg value="-Werror"/>
952        </javac-elements>        </javac-elements>
953      </run-tck-tests>      </run-tck-tests>
954    </target>    </target>
955    
   
956    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
957    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
958    
959      <junit printsummary="true"      <junit printsummary="true"
960             showoutput="true"             showoutput="true"
# Line 965  Line 976 
976    
977        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
978        </test>        </test>
   
979      </junit>      </junit>
980    </target>    </target>
981    
982    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
983      <run-jtreg-tests      <run-jtreg-tests
984         target="7"         target="7"
985         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
986         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
987    </target>    </target>
988    
989      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
990    
991    <target name="4jdk7-test"    <target name="4jdk7docs">
           depends="4jdk7-tck, 4jdk7-jtreg"  
           description="Runs tck and jtreg tests for jsr166-4jdk7">  
   </target>  
   
   
   <target name="4jdk7docs"  
           description="Builds javadocs for src/jdk7 to dist dir">  
   
992      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
993      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
994    
# Line 1008  Line 1009 
1009      </javadoc>      </javadoc>
1010    </target>    </target>
1011    
1012      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1013    
1014    <target name="4jdk7dist"    <target name="4jdk7clean">
           depends="4jdk7dist-jar, 4jdk7dist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="4jdk7clean"  
           description="Removes all 4jdk7 build products">  
   
1015      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1016    </target>    </target>
1017    
1018      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1019      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1020    </target>    </target>
1021    
1022      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1023      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1024    </target>    </target>
1025    
1026    
1027    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1028    
1029      <target name="jsr166xcompile" depends="configure-compiler">
1030      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1031    
1032      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1053  Line 1040 
1040             target="5"             target="5"
1041             includeAntRuntime="false"             includeAntRuntime="false"
1042             includeJavaRuntime="false"             includeJavaRuntime="false"
1043               encoding="ASCII"
1044             executable="${javac7}"             executable="${javac7}"
1045             fork="true">             fork="true">
   
1046        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1047        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1048        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1049        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1050        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1051      </javac>      </javac>
1052    </target>    </target>
1053    
1054      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1055      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1056        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1057        <manifest>        <manifest>
# Line 1077  Line 1059 
1059          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1060        </manifest>        </manifest>
1061      </jar>      </jar>
   
1062    </target>    </target>
1063    
1064      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1065      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1066      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1067    
# Line 1098  Line 1076 
1076               failonerror = "true">               failonerror = "true">
1077        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1078        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1079      </javadoc>      </javadoc>
1080    </target>    </target>
1081    
1082      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1083    
1084    <target name="jsr166xdist"    <target name="jsr166xclean">
           depends="jsr166xdist-jar, jsr166xdist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166xclean"  
           description="Removes all jsr166x build products">  
   
1085      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1086    </target>    </target>
1087    
1088      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1089      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1090    </target>    </target>
1091    
1092    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1093      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1094    </target>    </target>
1095    
   <!-- jsr166y -->  
1096    
1097      <!-- jsr166y (no longer maintained) -->
1098    
1099    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1100      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1101    
1102      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1146  Line 1110 
1110             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1111             includeAntRuntime="false"             includeAntRuntime="false"
1112             includeJavaRuntime="false"             includeJavaRuntime="false"
1113               encoding="ASCII"
1114             executable="${javac7}"             executable="${javac7}"
1115             fork="true">             fork="true">
1116    
# Line 1154  Line 1119 
1119        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1120        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1121        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1122      </javac>      </javac>
1123    </target>    </target>
1124    
1125      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1126      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1127        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1128        <manifest>        <manifest>
# Line 1170  Line 1130 
1130          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1131        </manifest>        </manifest>
1132      </jar>      </jar>
   
1133    </target>    </target>
1134    
1135      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1136      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1137      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1138    
# Line 1191  Line 1147 
1147               failonerror = "true">               failonerror = "true">
1148        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1149        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1150      </javadoc>      </javadoc>
1151    </target>    </target>
1152    
1153      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1154    
1155    <target name="jsr166ydist"    <target name="jsr166yclean">
           depends="jsr166ydist-jar, jsr166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166yclean"  
           description="Removes all jsr166y build products">  
   
1156      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1157    </target>    </target>
1158    
1159      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1160      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1161    </target>    </target>
1162    
1163    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1164      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1165    </target>    </target>
1166    
1167    
1168    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1169    
1170      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1171      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1172    
1173      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1240  Line 1181 
1181             target="6"             target="6"
1182             includeAntRuntime="false"             includeAntRuntime="false"
1183             includeJavaRuntime="false"             includeJavaRuntime="false"
1184               encoding="ASCII"
1185             executable="${javac7}"             executable="${javac7}"
1186             fork="true">             fork="true">
1187    
# Line 1248  Line 1190 
1190        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1191        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1192        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1193      </javac>      </javac>
1194    </target>    </target>
1195    
1196      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1197      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1198        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1199        <manifest>        <manifest>
# Line 1264  Line 1201 
1201          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1202        </manifest>        </manifest>
1203      </jar>      </jar>
   
1204    </target>    </target>
1205    
1206      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1207      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1208      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1209    
# Line 1284  Line 1217 
1217               executable="${javadoc7}">               executable="${javadoc7}">
1218        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1219        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1220      </javadoc>      </javadoc>
1221    </target>    </target>
1222    
1223      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1224    
1225    <target name="extra166ydist"    <target name="extra166yclean">
           depends="extra166ydist-jar, extra166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="extra166yclean"  
           description="Removes all extra166y build products">  
   
1226      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1227    </target>    </target>
1228    
1229      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1230      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1231    </target>    </target>
1232    
1233    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1234      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1235    </target>    </target>
1236    
1237    <!-- jsr166e -->  
1238      <!-- jsr166e (no longer maintained) -->
1239    
1240    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1241    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1242    
1243    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1244      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1245    
1246      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1341  Line 1261 
1261        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1262        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1263        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1264      </javac>      </javac>
1265    </target>    </target>
1266    
   <!-- jsr166e: find doclint errors -->  
1267    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1268      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1269    
1270      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1369  Line 1286 
1286        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1287        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1288        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1289      </javac>      </javac>
1290    </target>    </target>
1291    
1292      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1293      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1294        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1295        <manifest>        <manifest>
# Line 1385  Line 1297 
1297          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1298        </manifest>        </manifest>
1299      </jar>      </jar>
   
1300    </target>    </target>
1301    
1302      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1303      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1304      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1305    
# Line 1405  Line 1313 
1313               failonerror = "true">               failonerror = "true">
1314        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1315        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1316      </javadoc>      </javadoc>
1317    </target>    </target>
1318    
1319      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1320      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1321      <run-tck-tests      <run-tck-tests
1322        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1323        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1422  Line 1325 
1325        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1326    </target>    </target>
1327    
1328    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1329    
1330  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1331  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1444  Line 1346 
1346      </antcall>      </antcall>
1347    </target>    </target>
1348    
1349      <target name="jsr166e-test" depends="jsr166e-tck"/>
1350    
1351    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
   
   <target name="jsr166edist"  
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
1352    
1353    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1354      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1355    </target>    </target>
1356    
   
1357    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1358            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1359      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1360    </target>    </target>
1361    
1362    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1363      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1364    </target>    </target>
1365    
1366    
1367  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1368    
1369    <target name="lint">  <!--   <target name="lint"> -->
1370      <antcall target="dists">  <!--     <antcall target="dists"> -->
1371        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1372      </antcall>  <!--     </antcall> -->
1373    </target>  <!--   </target> -->
1374    
1375  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1376    <target name="lint-private">    <target name="doclint-private">
1377      <antcall target="dist">      <antcall target="dist">
1378        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1379      </antcall>      </antcall>
1380    </target>    </target>
1381    
1382    
1383    <!-- ==============================================================
1384      Experimental errorprone support
1385      https://errorprone.info
1386      https://errorprone.info/docs/installation
1387      https://github.com/google/error-prone/issues/1143
1388    =================================================================== -->
1389      <path id="errorprone.processorpath.path">
1390        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1391        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1392        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1393        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1394      </path>
1395      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1396      <property name="errorprone.jsr166.user.flags" value=""/>
1397      <property name="errorprone.jsr166.flags"
1398                value="-Xep:HashtableContains:OFF
1399                       -Xep:JdkObsolete:OFF
1400                       -Xep:MissingOverride:OFF
1401                       -Xep:MissingFail:OFF
1402                       -Xep:ThreadPriorityCheck:OFF
1403                       -Xep:MixedArrayDimensions:ERROR
1404                       -Xep:RemoveUnusedImports:ERROR
1405                       -Xep:EmptyIf:ERROR
1406                       -Xep:MultipleTopLevelClasses:ERROR
1407                       -Xep:ClassName:ERROR
1408                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1409                       -Xep:RedundantThrows:ERROR
1410                       -Xep:IdentityBinaryExpression:WARN
1411                       -Xep:ConstructorInvokesOverridable:WARN
1412                       -Xep:MethodCanBeStatic:WARN
1413                       ${errorprone.jsr166.user.flags}"/>
1414      <!-- -Xep:WildcardImport:ERROR -->
1415      <property name="errorprone.jsr166.test.flags"
1416                value="-Xep:StringSplitter:OFF
1417                       -Xep:BoxedPrimitiveConstructor:OFF
1418                       -Xep:ModifyingCollectionWithItself:OFF"/>
1419      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1420      <target name="errorprone"
1421              depends="clean, configure-compiler"
1422              description="Run errorprone over jsr166 source code (experimental)">
1423    
1424        <local name="destdir"/>
1425        <property name="destdir" value="${build.classes.dir}/java.base"/>
1426        <mkdir dir="${destdir}"/>
1427    
1428        <javac srcdir="${src.dir}"
1429               destdir="${destdir}"
1430               debug="${build.debug}"
1431               debuglevel="${build.debuglevel}"
1432               deprecation="${build.deprecation}"
1433               classpath=""
1434               includeAntRuntime="false"
1435               includeJavaRuntime="false"
1436               encoding="ASCII"
1437               executable="${build.main.javac}"
1438               fork="true">
1439    
1440          <include name="**/*.java"/>
1441          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1442          <compilerarg value="-J--illegal-access=permit"/>
1443          <compilerarg value="-XDcompilePolicy=simple"/>
1444          <compilerarg value="-processorpath"/>
1445          <compilerarg pathref="errorprone.processorpath.path"/>
1446          <compilerarg value="-Xplugin:ErrorProne
1447                              ${errorprone.jsr166.flags}"/>
1448          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1449          <compilerarg value="-Xprefer:source"/>
1450          <compilerarg value="-XDignore.symbol.file=true"/>
1451          <compilerarg value="-Xlint:all"/>
1452          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1453          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1454          <compilerarg line="${build.args}"/>
1455        </javac>
1456    
1457        <jar destfile="${product.jar}">
1458          <fileset dir="${destdir}"/>
1459        </jar>
1460    
1461        <run-tck-tests
1462          target="${java.runtime.target}"
1463          workdir="${build.dir}"
1464          classes="${product.jar}">
1465          <javac-elements>
1466            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1467            <compilerarg value="-J--illegal-access=permit"/>
1468            <compilerarg value="-XDcompilePolicy=simple"/>
1469            <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1470            <compilerarg value="-Xplugin:ErrorProne
1471                                ${errorprone.jsr166.flags}
1472                                ${errorprone.jsr166.test.flags}"/>
1473            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1474          </javac-elements>
1475        </run-tck-tests>
1476      </target>
1477    
1478      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1479      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1480      <target name="errorprone-jtreg"
1481              depends="jar"
1482              description="Run errorprone over jtreg tests (experimental)">
1483    
1484        <run-jtreg-tests
1485           target="${java.runtime.target}"
1486           workdir="${build.dir}"
1487           classes="${product.jar}"
1488           verbose="all">
1489          <jtreg-elements>
1490            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1491            <arg value="-javacoption:-processorpath"/>
1492            <arg value="-javacoption:${errorprone.processorpath}"/>
1493            <arg value="-javacoption:-Xplugin:ErrorProne
1494                                ${errorprone.jsr166.flags}
1495                                ${errorprone.jsr166.test.flags}
1496                                -Xep:MultipleTopLevelClasses:WARN
1497                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1498          </jtreg-elements>
1499        </run-jtreg-tests>
1500      </target>
1501    
1502    
1503    <!-- ==============================================================
1504      Running guava tests against jsr166 code
1505    =================================================================== -->
1506    
1507    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1508    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1509    <!-- <property name="guava.version" value="21.0"/> -->
1510    
1511    <!-- HOWTO debug print a path id -->
1512    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1513    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1514    
1515    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1516    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1517    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1518    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1519    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1520    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1521    
1522    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1523    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1524    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1525    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1526    
1527    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1528    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1529    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1530    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1531    
1532    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1533    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1534    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1535    
1536      <target name="init-ivy">
1537        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1538             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1539        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1540                 classpath="${build.dir}/ivy.jar"/>
1541      </target>
1542    
1543      <target name="guava-tests" depends="jar, init-ivy"
1544              description="Guava tests run against jsr166 collections">
1545        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1546        <mkdir dir="${guava.dir}"/>
1547        <ivy:retrieve pathid="guava.testlib.classpath"
1548          type="jar,bundle" inline="true" conf="default,master"
1549          pattern="${guava.dir}/[artifact].[ext]"
1550          organisation="com.google.guava" module="guava-testlib"/>
1551        <property name="guava.version" value="21.0"/>
1552        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1553             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1554        <junit printsummary="true" showoutput="true" haltonfailure="true"
1555               jvm="${build.main.java}" fork="true">
1556          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1557          <formatter type="brief"/>
1558          <classpath>
1559            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1560            <path refid="guava.testlib.classpath"/>
1561          </classpath>
1562    
1563          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1564          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1565        </junit>
1566      </target>
1567    
1568  </project>  </project>

Legend:
Removed from v.1.213  
changed lines
  Added in v.1.291

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8