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

Diff of /jsr166/build.xml

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

revision 1.213 by jsr166, Sat Jun 4 23:49:29 2016 UTC revision 1.302 by jsr166, Sun Aug 18 18:55:55 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/jdk11
24      $HOME/jdk/jdk12
25      $HOME/jdk/jdk13
26      $HOME/jdk/jdk14
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/jdk11
30      $HOME/jdk/src/jdk12
31      $HOME/jdk/src/jdk13
32      $HOME/jdk/src/jdk14
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 .. 14 ...
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.
41    target is currently broken.    As of 2019-08, the sources in src/main are for jdk11+ only.
42  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
43    </description>    </description>
44    
# Line 52  Line 56 
56    
57    
58    <!-- Compilation options -->    <!-- Compilation options -->
   <property name="build.sourcelevel"    value="6"/>  
59    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
60    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
61    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
# Line 63  Line 66 
66    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
67    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
68    <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"/>  
69    
70    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
71    <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 106 
106      <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"
107        unless:set="have.java.base"/>        unless:set="have.java.base"/>
108      <local name="modules"/>      <local name="modules"/>
109      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/>
110      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
111      <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"/>
112      <path id="bootclasspath@{v}" unless:set="modules">      <path id="bootclasspath@{v}" unless:set="modules">
# Line 130  Line 132 
132      </sequential>      </sequential>
133    </macrodef>    </macrodef>
134    
   <defjdklocations v="6"/>  
   <defjdklocations v="7"/>  
135    <defjdklocations v="8"/>    <defjdklocations v="8"/>
136    <defjdklocations v="9"/>    <defjdklocations v="11"/>
137      <defjdklocations v="12"/>
138      <defjdklocations v="13"/>
139      <defjdklocations v="14"/>
140    
141    <!-- Source locations -->    <!-- Source locations -->
142    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
143    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
144    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
145    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
   <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>  
146    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
147    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
148    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
149      <property name="jtreg13.src.dir"      location="${test.src.dir}/jtreg"/>
150      <property name="jtreg14.src.dir"      location="${test.src.dir}/jtreg"/>
151      <property name="jtreg.src.dir"        location="${jtreg11.src.dir}"/>
152    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
153    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
154    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
# Line 182  Line 187 
187    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
188    
189    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
190    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
191    <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"/>
192    <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"/>
193    <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"/>
194    <!-- 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"/>
195    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
196    <property name="java9.docroot.url"      value="http://http://download.java.net/java/jdk9/docs"/>    <property name="java12.docroot.url" value="https://docs.oracle.com/en/java/javase/12/docs"/>
197    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- The location of jdk early access docs (RIP) -->
198    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
199    <!--   <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> -->
200      <property name="java13.docroot.url" value="https://download.java.net/java/early_access/jdk13/docs"/>
201      <property name="java14.docroot.url" value="https://download.java.net/java/early_access/jdk14/docs"/>
202      <!-- Default jdk doc location (latest stable LTS release seems best) -->
203      <property name="java.docroot.url"   value="${java11.docroot.url}"/>
204    
205    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
   <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>  
   <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>  
   <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>  
206    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
207    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
208      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
209      <property name="java13.api.url"     value="${java13.docroot.url}/api/"/>
210      <property name="java14.api.url"     value="${java14.docroot.url}/api/"/>
211    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
212    
213    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 230  Line 240 
240    
241      <local name="modules"/>      <local name="modules"/>
242      <condition property="modules">      <condition property="modules">
243        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
244        </condition>
245    
246        <local name="use-doclint"/>
247        <condition property="use-doclint">
248          <not> <equals arg1="@{target}" arg2="7"/> </not>
249      </condition>      </condition>
250    
251      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
# Line 245  Line 260 
260             classpath="${junit.jar}"             classpath="${junit.jar}"
261             includeAntRuntime="false"             includeAntRuntime="false"
262             includeJavaRuntime="false"             includeJavaRuntime="false"
263               encoding="ASCII"
264             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
265             fork="true">             fork="true">
266    
267        <include name="*.java"/>        <include name="*.java"/>
268        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
269        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
270          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
271        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
272        <compilerarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
273        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
274        <javac-elements/>        <javac-elements/>
275    
# Line 263  Line 280 
280            jvm="${java@{target}}"            jvm="${java@{target}}"
281            fork="true">            fork="true">
282          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
283          <jvmarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
284            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
285            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
286            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
287            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
288            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
289          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
290            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
291            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
292    
293          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
294          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
295            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
296            <propertyref prefix="jsr166."/>            <propertyref prefix="jsr166."/>
# Line 283  Line 307 
307    </macrodef>    </macrodef>
308    
309    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
310    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
311      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
312        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
313      </patternset>    <macrodef name="defjtregtests">
314    </fileset>      <attribute name="v"/>
315        <sequential>
316    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
317      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
318        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
319        <exclude name="**/SpliteratorCharacteristics.java"/>          </patternset>
320        <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->        </fileset>
321        <exclude name="**/GCDuringIteration.java"/>      </sequential>
322      </patternset>    </macrodef>
   </fileset>  
323    
324    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="14"/>
325      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="13"/>
326        <include name="**/*.java"/>    <defjtregtests v="12"/>
327      </patternset>    <defjtregtests v="11"/>
328    </fileset>    <defjtregtests v="8"/>
329    
330    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
331    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
332    
333    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
334      <!-- 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"/>  
335      <attribute name="target"/>      <attribute name="target"/>
336      <attribute name="workdir"/>      <attribute name="workdir"/>
337      <attribute name="classes"/>      <attribute name="classes"/>
338        <attribute name="verbose" default="${jtreg.verbose}"/>
339      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
340        <element name="jtreg-elements" optional="true"/>
341    
342      <sequential>      <sequential>
343    
# Line 322  Line 346 
346    
347      <local name="modules"/>      <local name="modules"/>
348      <condition property="modules">      <condition property="modules">
349        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
350      </condition>      </condition>
351    
352      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
353      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
354             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
355             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
356        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
357        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
358        <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"/>
359          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
360        <arg value="-agentvm"/>        <arg value="-agentvm"/>
361        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-noreport"/>
362          <arg value="-verbose:@{verbose}"/>
363        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
364        <arg value="-automatic"/>        <arg value="-automatic"/>
365        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
366        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
367        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
368          <jtreg-elements/>
369      </jtreg>      </jtreg>
370      </sequential>      </sequential>
371    </macrodef>    </macrodef>
# Line 351  Line 376 
376    </path>    </path>
377    
378    <!-- Support @jls tag, used in jdk8+ javadoc -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
379      <!-- TODO: switch to @jls taglet, as supported by jdk14+ javadoc -->
380    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
381    <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;:"/>
382    
383    <!-- Main targets -->    <!-- Main targets -->
384    
385    <property name="build.main.java.version" value="9"/>    <!-- Default values: may seem strange ... -->
386    <property name="build.main.javac" value="${javac9}"/>    <!-- At runtime, target latest LTS, i.e. jdk11 -->
387      <!-- But at build time, target jdk9, for maximal binary portability -->
388      <!-- ButButBut as of 2019-08, target jdk11 at build time -->
389      <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
390        o override-methods=summary
391        o {@systemProperty ...}
392        o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
393        o 8202628: javadoc generates bad links in TestModules.java
394        -->
395      <property name="java.runtime.target" value="11"/>
396      <property name="build.main.java" value="${java11}"/>
397      <property name="build.main.javac" value="${javac11}"/>
398      <property name="build.main.javadoc" value="${javadoc12}"/>
399      <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
400    
401    <target name="dists"    <target name="dists"
402            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
403            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
404              <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
405    
406    <target name="compile"    <target name="compile"
407            depends="configure-compiler"            depends="configure-compiler"
408            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
409    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
410      <local name="destdir"/>      <local name="destdir"/>
411      <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"/>  
412    
413      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
414    
# Line 389  Line 420 
420             classpath=""             classpath=""
421             includeAntRuntime="false"             includeAntRuntime="false"
422             includeJavaRuntime="false"             includeJavaRuntime="false"
423               encoding="ASCII"
424             executable="${build.main.javac}"             executable="${build.main.javac}"
425             fork="true">             fork="true">
426    
427        <include name="**/*.java"/>        <include name="**/*.java"/>
428        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
429        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
430        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
431        <compilerarg value="-Xlint:all"/>  <!--   Xlint:-removal for jdk12 Unsafe Object -> Reference renaming -->
432          <compilerarg value="-Xlint:all,-removal"/>
433          <compilerarg line="--doclint-format html5"/>
434          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
435          <compilerarg value="-Xdoclint/package:java.util.*"/>
436        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
437        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
438        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
439    
# Line 430  Line 465 
465      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
466      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
467    
468    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
469    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
470    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
471    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
472    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
473      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
474               packagenames="none"               packagenames="none"
475               link="${java9.api.url}"               link="${java.api.url}"
476               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
477               access="${build.javadoc.access}"               access="${build.javadoc.access}"
478               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
479               classpath=""               classpath=""
480               executable="${javadoc9}">               source="${build.main.javadoc.source}"
481                 executable="${build.main.javadoc}">
482    <!-- TODO: JDK-8214571 failonerror = "true" -->
483        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
484          <include name="**/*.java"/>          <include name="**/*.java"/>
485        </fileset>        </fileset>
486        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
487        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
488        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
489  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
490        <arg value="-tag"/>        <arg value="--patch-module=java.base=${src.dir}"/>
491        <arg value="${javadoc.jls.option}"/>  <!-- old school frames via docs/index.html?overview-summary.html -->
492        <arg value="-tag"/>  <!-- TODO: - -frames no longer a supported option in jdk13+ -->
493        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="--frames"/>
494        <arg value="-tag"/>        <arg value="--override-methods=summary"/>
495        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
496        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
497        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
498  <!-- tags added in jdk9 -->        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
499        <arg value="-tag"/>  <!-- tags added in jdk9: currently unused -->
500        <arg value="revised:X"/>  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
501        <arg value="-tag"/>  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
       <arg value="spec:X"/>  
502      </javadoc>      </javadoc>
503    </target>    </target>
504    
# Line 467  Line 508 
508            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
509    
510    
   <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>  
   
   
511    <target name="clean"    <target name="clean"
512            description="Removes all build products">            description="Removes all build products">
   
513      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
514    </target>    </target>
515    
516    
517    <target name="dist-clean"    <target name="dist-clean"
518            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
519      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
520      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
521    </target>    </target>
522    
523    
# Line 521  Line 536 
536            description="Runs tck tests for src/main directly">            description="Runs tck tests for src/main directly">
537    
538      <run-tck-tests      <run-tck-tests
539        target="${build.main.java.version}"        target="${java.runtime.target}"
540        workdir="${build.dir}"        workdir="${build.dir}"
541        classes="${product.jar}"/>        classes="${product.jar}">
542          <javac-elements>
543            <compilerarg value="-Werror"/>
544          </javac-elements>
545        </run-tck-tests>
546    </target>    </target>
547    
548    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 551  Line 570 
570            depends="jar"            depends="jar"
571            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
572      <run-jtreg-tests      <run-jtreg-tests
573         target="${build.main.java.version}"         target="${java.runtime.target}"
574         workdir="${build.dir}"         workdir="${build.dir}"
575         classes="${product.jar}"/>         classes="${product.jar}"/>
576    </target>    </target>
577    
578    <target name="test"    <target name="test"
579            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
580            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
581    
582  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->    <target name="test-version-permutations"
583              depends="test11, test12, test13, test14, test11-12, test11-13, test11-14, clean, test, docs">
584      </target>
585    
586  <!--     <antcall target="jtreg"> -->    <!-- jdk9 is unsupported as of 2019-08 -->
587  <!--       <param name="build.main.java.version" value="8"/> -->  <!--   <target name="test9"> -->
588  <!--       <param name="build.main.javac" value="${javac8}"/> -->  <!--     <antcall target="clean"/> -->
589    <!--     <antcall> -->
590    <!--       <param name="java.runtime.target" value="9"/> -->
591    <!--       <param name="build.main.javac" value="${javac9}"/> -->
592    <!--       <param name="build.main.javadoc" value="${javadoc12}"/> -->
593    <!--       <param name="build.main.javadoc.source" value="9"/> -->
594    <!--       <target name="test"/> -->
595    <!--       <target name="docs"/> -->
596  <!--     </antcall> -->  <!--     </antcall> -->
   
597  <!--   </target> -->  <!--   </target> -->
598    
599  <!--   <target name="test89" -->    <!-- jdk10 is unsupported as of 2019-08 -->
600  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->  <!--   <target name="test10"> -->
   
601  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
602  <!--     <antcall target="test"> -->  <!--     <antcall> -->
603  <!--       <param name="build.main.java.version" value="8"/> -->  <!--       <param name="java.runtime.target" value="10"/> -->
604  <!--       <param name="build.main.javac" value="${javac8}"/> -->  <!--       <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> -->  <!--     </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="9"/> -->      <antcall>
615  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <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  <!--   </target> -->    <target name="test12">
625        <antcall target="clean"/>
626        <antcall>
627          <param name="java.runtime.target" value="12"/>
628          <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 name="test13">
637        <antcall target="clean"/>
638        <antcall>
639          <param name="java.runtime.target" value="13"/>
640          <param name="build.main.javac" value="${javac13}"/>
641          <param name="build.main.javadoc" value="${javadoc13}"/>
642          <param name="build.main.javadoc.source" value="13"/>
643          <target name="test"/>
644          <target name="docs"/>
645        </antcall>
646      </target>
647    
648      <target name="test14">
649        <antcall target="clean"/>
650        <antcall>
651          <param name="java.runtime.target" value="14"/>
652          <param name="build.main.javac" value="${javac14}"/>
653          <param name="build.main.javadoc" value="${javadoc14}"/>
654          <param name="build.main.javadoc.source" value="14"/>
655          <target name="test"/>
656          <target name="docs"/>
657        </antcall>
658      </target>
659    
660      <target name="test11-12">
661        <antcall target="clean"/>
662        <antcall>
663          <param name="java.runtime.target" value="12"/>
664          <param name="build.main.javac" value="${javac11}"/>
665          <param name="build.main.javadoc" value="${javadoc12}"/>
666          <param name="build.main.javadoc.source" value="11"/>
667          <target name="test"/>
668          <target name="docs"/>
669        </antcall>
670      </target>
671    
672      <target name="test11-13">
673        <antcall target="clean"/>
674        <antcall>
675          <param name="java.runtime.target" value="13"/>
676          <param name="build.main.javac" value="${javac11}"/>
677          <param name="build.main.javadoc" value="${javadoc13}"/>
678          <param name="build.main.javadoc.source" value="11"/>
679          <target name="test"/>
680          <target name="docs"/>
681        </antcall>
682      </target>
683    
684      <target name="test11-14">
685        <antcall target="clean"/>
686        <antcall>
687          <param name="java.runtime.target" value="14"/>
688          <param name="build.main.javac" value="${javac11}"/>
689          <param name="build.main.javadoc" value="${javadoc14}"/>
690          <param name="build.main.javadoc.source" value="11"/>
691          <target name="test"/>
692          <target name="docs"/>
693        </antcall>
694      </target>
695    
696    
697    <target name="configure-compiler">    <target name="configure-compiler">
698      <fail message="ant version too old">      <fail message="ant version too old">
699        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
700      </fail>      </fail>
701    
702      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 611  Line 714 
714    </target>    </target>
715    
716    
   
   <!-- 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>  
   
   
717    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
718            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
719    
720      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
721    
# Line 654  Line 726 
726             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
727             includeAntRuntime="false"             includeAntRuntime="false"
728             includeJavaRuntime="false"             includeJavaRuntime="false"
729             executable="${javac9}"             encoding="ASCII"
730               executable="${build.main.javac}"
731             fork="true">             fork="true">
732    
733        <include name="*.java"/>        <include name="*.java"/>
# Line 662  Line 735 
735        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
736        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
737        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
738      </javac>      </javac>
   
739    </target>    </target>
740    
741    
# Line 687  Line 758 
758             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
759             includeAntRuntime="false"             includeAntRuntime="false"
760             includeJavaRuntime="false"             includeJavaRuntime="false"
761               encoding="ASCII"
762             executable="${javac8}"             executable="${javac8}"
763             fork="true">             fork="true">
   
764        <include name="**/*.java"/>        <include name="**/*.java"/>
765        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
766        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
767        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
768        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
769        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
770      </javac>      </javac>
771    </target>    </target>
772    
# Line 717  Line 787 
787             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
788             includeAntRuntime="false"             includeAntRuntime="false"
789             includeJavaRuntime="false"             includeJavaRuntime="false"
790               encoding="ASCII"
791             executable="${javac8}"             executable="${javac8}"
792             fork="true">             fork="true">
   
793        <include name="**/*.java"/>        <include name="**/*.java"/>
794        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
795        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
796        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
797        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
798        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
799      </javac>      </javac>
800    </target>    </target>
801    
# Line 742  Line 811 
811          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
812        </manifest>        </manifest>
813      </jar>      </jar>
   
814    </target>    </target>
815    
816    
# Line 758  Line 826 
826          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
827          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
828          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
829            <compilerarg value="-Werror"/>
830        </javac-elements>        </javac-elements>
831      </run-tck-tests>      </run-tck-tests>
832    </target>    </target>
# Line 775  Line 844 
844    
845    <target name="4jdk8-test"    <target name="4jdk8-test"
846            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
847            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
848    
849    
850    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 792  Line 860 
860               access="${build.javadoc.access}"               access="${build.javadoc.access}"
861               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
862               classpath=""               classpath=""
863                 source="8"
864               executable="${javadoc8}"               executable="${javadoc8}"
865               failonerror = "true">               failonerror = "true">
866        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 799  Line 868 
868        </fileset>        </fileset>
869        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
870        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
871        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
872        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
873        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
874        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!-- @apiNote tag currently unused -->
875        <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;"/>  
876      </javadoc>      </javadoc>
877    </target>    </target>
878    
# Line 818  Line 884 
884    
885    <target name="4jdk8clean"    <target name="4jdk8clean"
886            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
887      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
888    </target>    </target>
889    
890    
# Line 836  Line 900 
900    </target>    </target>
901    
902    
903      <!-- jsr166 4jdk7 (no longer maintained) -->
904    
905    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
906      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
907    
908      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 856  Line 916 
916             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
917             includeAntRuntime="false"             includeAntRuntime="false"
918             includeJavaRuntime="false"             includeJavaRuntime="false"
919               encoding="ASCII"
920             executable="${javac7}"             executable="${javac7}"
921             fork="true">             fork="true">
922    
# Line 865  Line 926 
926        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
927        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
928        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
929      </javac>      </javac>
930    </target>    </target>
931    
932    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
933      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
934    
935      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 886  Line 943 
943             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
944             includeAntRuntime="false"             includeAntRuntime="false"
945             includeJavaRuntime="false"             includeJavaRuntime="false"
946               encoding="ASCII"
947             executable="${javac8}"             executable="${javac8}"
948             fork="true">             fork="true">
949    
# Line 895  Line 953 
953        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
954        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
955        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
956      </javac>      </javac>
957    </target>    </target>
958    
959      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
960      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
961        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
962        <manifest>        <manifest>
# Line 911  Line 964 
964          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
965        </manifest>        </manifest>
966      </jar>      </jar>
   
967    </target>    </target>
968    
969      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
970      <run-tck-tests      <run-tck-tests
971        target="7"        target="7"
972        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 936  Line 984 
984          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
985          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
986          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
987            <compilerarg value="-Werror"/>
988        </javac-elements>        </javac-elements>
989      </run-tck-tests>      </run-tck-tests>
990    </target>    </target>
991    
   
992    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
993    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
994    
995      <junit printsummary="true"      <junit printsummary="true"
996             showoutput="true"             showoutput="true"
# Line 965  Line 1012 
1012    
1013        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
1014        </test>        </test>
   
1015      </junit>      </junit>
1016    </target>    </target>
1017    
1018    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
1019      <run-jtreg-tests      <run-jtreg-tests
1020         target="7"         target="7"
1021         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
1022         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
1023    </target>    </target>
1024    
1025      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1026    
1027    <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">  
   
1028      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
1029      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
1030    
# Line 1008  Line 1045 
1045      </javadoc>      </javadoc>
1046    </target>    </target>
1047    
1048      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1049    
1050    <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">  
   
1051      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1052    </target>    </target>
1053    
1054      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1055      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1056    </target>    </target>
1057    
1058      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1059      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1060    </target>    </target>
1061    
1062    
1063    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1064    
1065      <target name="jsr166xcompile" depends="configure-compiler">
1066      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1067    
1068      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1053  Line 1076 
1076             target="5"             target="5"
1077             includeAntRuntime="false"             includeAntRuntime="false"
1078             includeJavaRuntime="false"             includeJavaRuntime="false"
1079               encoding="ASCII"
1080             executable="${javac7}"             executable="${javac7}"
1081             fork="true">             fork="true">
   
1082        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1083        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1084        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1085        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1086        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1087      </javac>      </javac>
1088    </target>    </target>
1089    
1090      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1091      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1092        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1093        <manifest>        <manifest>
# Line 1077  Line 1095 
1095          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1096        </manifest>        </manifest>
1097      </jar>      </jar>
   
1098    </target>    </target>
1099    
1100      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1101      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1102      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1103    
# Line 1098  Line 1112 
1112               failonerror = "true">               failonerror = "true">
1113        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1114        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1115      </javadoc>      </javadoc>
1116    </target>    </target>
1117    
1118      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1119    
1120    <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">  
   
1121      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1122    </target>    </target>
1123    
1124      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1125      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1126    </target>    </target>
1127    
1128    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1129      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1130    </target>    </target>
1131    
   <!-- jsr166y -->  
   
1132    
1133    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1134    
1135      <target name="jsr166ycompile" depends="configure-compiler">
1136      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1137    
1138      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1146  Line 1146 
1146             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1147             includeAntRuntime="false"             includeAntRuntime="false"
1148             includeJavaRuntime="false"             includeJavaRuntime="false"
1149               encoding="ASCII"
1150             executable="${javac7}"             executable="${javac7}"
1151             fork="true">             fork="true">
1152    
# Line 1154  Line 1155 
1155        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1156        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1157        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1158      </javac>      </javac>
1159    </target>    </target>
1160    
1161      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1162      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1163        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1164        <manifest>        <manifest>
# Line 1170  Line 1166 
1166          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1167        </manifest>        </manifest>
1168      </jar>      </jar>
   
1169    </target>    </target>
1170    
1171      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1172      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1173      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1174    
# Line 1191  Line 1183 
1183               failonerror = "true">               failonerror = "true">
1184        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1185        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1186      </javadoc>      </javadoc>
1187    </target>    </target>
1188    
1189      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1190    
1191    <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">  
   
1192      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1193    </target>    </target>
1194    
1195      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1196      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1197    </target>    </target>
1198    
1199    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1200      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1201    </target>    </target>
1202    
1203    
1204    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1205    
1206      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1207      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1208    
1209      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1240  Line 1217 
1217             target="6"             target="6"
1218             includeAntRuntime="false"             includeAntRuntime="false"
1219             includeJavaRuntime="false"             includeJavaRuntime="false"
1220               encoding="ASCII"
1221             executable="${javac7}"             executable="${javac7}"
1222             fork="true">             fork="true">
1223    
# Line 1248  Line 1226 
1226        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1227        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1228        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1229      </javac>      </javac>
1230    </target>    </target>
1231    
1232      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1233      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1234        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1235        <manifest>        <manifest>
# Line 1264  Line 1237 
1237          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1238        </manifest>        </manifest>
1239      </jar>      </jar>
   
1240    </target>    </target>
1241    
1242      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1243      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1244      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1245    
# Line 1284  Line 1253 
1253               executable="${javadoc7}">               executable="${javadoc7}">
1254        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1255        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1256      </javadoc>      </javadoc>
1257    </target>    </target>
1258    
1259      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1260    
1261    <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">  
   
1262      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1263    </target>    </target>
1264    
1265      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1266      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1267    </target>    </target>
1268    
1269    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1270      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1271    </target>    </target>
1272    
1273    <!-- jsr166e -->  
1274      <!-- jsr166e (no longer maintained) -->
1275    
1276    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1277    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1278    
1279    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1280      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1281    
1282      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1341  Line 1297 
1297        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1298        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1299        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1300      </javac>      </javac>
1301    </target>    </target>
1302    
   <!-- jsr166e: find doclint errors -->  
1303    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1304      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1305    
1306      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1369  Line 1322 
1322        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1323        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1324        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1325      </javac>      </javac>
1326    </target>    </target>
1327    
1328      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1329      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1330        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1331        <manifest>        <manifest>
# Line 1385  Line 1333 
1333          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1334        </manifest>        </manifest>
1335      </jar>      </jar>
   
1336    </target>    </target>
1337    
1338      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1339      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1340      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1341    
# Line 1405  Line 1349 
1349               failonerror = "true">               failonerror = "true">
1350        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1351        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1352      </javadoc>      </javadoc>
1353    </target>    </target>
1354    
1355      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1356      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1357      <run-tck-tests      <run-tck-tests
1358        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1359        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1422  Line 1361 
1361        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1362    </target>    </target>
1363    
1364    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1365    
1366  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1367  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1444  Line 1382 
1382      </antcall>      </antcall>
1383    </target>    </target>
1384    
1385      <target name="jsr166e-test" depends="jsr166e-tck"/>
1386    
1387    <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"/>  
   
1388    
1389    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1390      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1391    </target>    </target>
1392    
   
1393    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1394            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1395      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1396    </target>    </target>
1397    
1398    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1399      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1400    </target>    </target>
1401    
1402    
1403  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1404    
1405    <target name="lint">  <!--   <target name="lint"> -->
1406      <antcall target="dists">  <!--     <antcall target="dists"> -->
1407        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1408      </antcall>  <!--     </antcall> -->
1409    </target>  <!--   </target> -->
1410    
1411  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1412    <target name="lint-private">    <target name="doclint-private">
1413      <antcall target="dist">      <antcall target="dist">
1414        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1415      </antcall>      </antcall>
1416    </target>    </target>
1417    
1418    
1419    <!-- ==============================================================
1420      Experimental errorprone support
1421      https://errorprone.info
1422      https://errorprone.info/docs/installation
1423      https://github.com/google/error-prone/issues/1143
1424    =================================================================== -->
1425      <path id="errorprone.processorpath.path">
1426        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1427        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1428        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1429        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1430      </path>
1431      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1432      <property name="errorprone.jsr166.user.flags" value=""/>
1433      <property name="errorprone.jsr166.flags"
1434                value="-Xep:HashtableContains:OFF
1435                       -Xep:JdkObsolete:OFF
1436                       -Xep:MissingOverride:OFF
1437                       -Xep:MissingFail:OFF
1438                       -Xep:ThreadPriorityCheck:OFF
1439                       -Xep:MixedArrayDimensions:ERROR
1440                       -Xep:RemoveUnusedImports:ERROR
1441                       -Xep:EmptyIf:ERROR
1442                       -Xep:MultipleTopLevelClasses:ERROR
1443                       -Xep:ClassName:ERROR
1444                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1445                       -Xep:RedundantThrows:ERROR
1446                       -Xep:IdentityBinaryExpression:WARN
1447                       -Xep:ConstructorInvokesOverridable:WARN
1448                       -Xep:MethodCanBeStatic:WARN
1449                       ${errorprone.jsr166.user.flags}"/>
1450      <!-- -Xep:WildcardImport:ERROR -->
1451      <property name="errorprone.jsr166.test.flags"
1452                value="-Xep:StringSplitter:OFF
1453                       -Xep:BoxedPrimitiveConstructor:OFF
1454                       -Xep:ModifyingCollectionWithItself:OFF"/>
1455      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1456      <target name="errorprone"
1457              depends="clean, configure-compiler"
1458              description="Run errorprone over jsr166 source code (experimental)">
1459    
1460        <local name="destdir"/>
1461        <property name="destdir" value="${build.classes.dir}/java.base"/>
1462        <mkdir dir="${destdir}"/>
1463    
1464        <javac srcdir="${src.dir}"
1465               destdir="${destdir}"
1466               debug="${build.debug}"
1467               debuglevel="${build.debuglevel}"
1468               deprecation="${build.deprecation}"
1469               classpath=""
1470               includeAntRuntime="false"
1471               includeJavaRuntime="false"
1472               encoding="ASCII"
1473               executable="${build.main.javac}"
1474               fork="true">
1475    
1476          <include name="**/*.java"/>
1477          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1478          <compilerarg value="-J--illegal-access=permit"/>
1479          <compilerarg value="-XDcompilePolicy=simple"/>
1480          <compilerarg value="-processorpath"/>
1481          <compilerarg pathref="errorprone.processorpath.path"/>
1482          <compilerarg value="-Xplugin:ErrorProne
1483                              ${errorprone.jsr166.flags}"/>
1484          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1485          <compilerarg value="-Xprefer:source"/>
1486          <compilerarg value="-XDignore.symbol.file=true"/>
1487          <compilerarg value="-Xlint:all"/>
1488          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1489          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1490          <compilerarg line="${build.args}"/>
1491        </javac>
1492    
1493        <jar destfile="${product.jar}">
1494          <fileset dir="${destdir}"/>
1495        </jar>
1496    
1497        <run-tck-tests
1498          target="${java.runtime.target}"
1499          workdir="${build.dir}"
1500          classes="${product.jar}">
1501          <javac-elements>
1502            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1503            <compilerarg value="-J--illegal-access=permit"/>
1504            <compilerarg value="-XDcompilePolicy=simple"/>
1505            <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1506            <compilerarg value="-Xplugin:ErrorProne
1507                                ${errorprone.jsr166.flags}
1508                                ${errorprone.jsr166.test.flags}"/>
1509            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1510          </javac-elements>
1511        </run-tck-tests>
1512      </target>
1513    
1514      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1515      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1516      <target name="errorprone-jtreg"
1517              depends="jar"
1518              description="Run errorprone over jtreg tests (experimental)">
1519    
1520        <run-jtreg-tests
1521           target="${java.runtime.target}"
1522           workdir="${build.dir}"
1523           classes="${product.jar}"
1524           verbose="all">
1525          <jtreg-elements>
1526            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1527            <arg value="-javacoption:-processorpath"/>
1528            <arg value="-javacoption:${errorprone.processorpath}"/>
1529            <arg value="-javacoption:-Xplugin:ErrorProne
1530                                ${errorprone.jsr166.flags}
1531                                ${errorprone.jsr166.test.flags}
1532                                -Xep:MultipleTopLevelClasses:WARN
1533                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1534          </jtreg-elements>
1535        </run-jtreg-tests>
1536      </target>
1537    
1538    
1539    <!-- ==============================================================
1540      Running guava tests against jsr166 code
1541    =================================================================== -->
1542    
1543    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1544    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1545    <!-- <property name="guava.version" value="21.0"/> -->
1546    
1547    <!-- HOWTO debug print a path id -->
1548    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1549    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1550    
1551    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1552    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1553    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1554    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1555    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1556    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1557    
1558    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1559    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1560    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1561    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1562    
1563    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1564    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1565    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1566    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1567    
1568    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1569    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1570    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1571    
1572      <target name="init-ivy">
1573        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1574             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1575        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1576                 classpath="${build.dir}/ivy.jar"/>
1577      </target>
1578    
1579      <target name="guava-tests" depends="jar, init-ivy"
1580              description="Guava tests run against jsr166 collections">
1581        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1582        <mkdir dir="${guava.dir}"/>
1583        <ivy:retrieve pathid="guava.testlib.classpath"
1584          type="jar,bundle" inline="true" conf="default,master"
1585          pattern="${guava.dir}/[artifact].[ext]"
1586          organisation="com.google.guava" module="guava-testlib"/>
1587        <property name="guava.version" value="21.0"/>
1588        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1589             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1590        <junit printsummary="true" showoutput="true" haltonfailure="true"
1591               jvm="${build.main.java}" fork="true">
1592          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1593          <formatter type="brief"/>
1594          <classpath>
1595            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1596            <path refid="guava.testlib.classpath"/>
1597          </classpath>
1598    
1599          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1600          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1601        </junit>
1602      </target>
1603    
1604  </project>  </project>

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

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