/[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.290 by jsr166, Sun Dec 2 22:46:53 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">
301            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
302            <propertyref prefix="jsr166."/>            <propertyref prefix="jsr166."/>
# 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}"/>
325        <exclude name="**/SpliteratorCharacteristics.java"/>          </patternset>
326        <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->        </fileset>
327        <exclude name="**/GCDuringIteration.java"/>      </sequential>
328      </patternset>    </macrodef>
   </fileset>  
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        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
486          <include name="**/*.java"/>          <include name="**/*.java"/>
487        </fileset>        </fileset>
488        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
489        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
490        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
491  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
492        <arg value="-tag"/>        <arg value="--patch-module=java.base=${src.dir}"/>
493        <arg value="${javadoc.jls.option}"/>  <!-- old school frames via docs/index.html?overview-summary.html -->
494        <arg value="-tag"/>        <arg value="--frames"/>
495        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="--override-methods=summary"/>
496        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
497        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
498        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
499        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
500  <!-- tags added in jdk9 -->  <!-- tags added in jdk9: currently unused -->
501        <arg value="-tag"/>  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
502        <arg value="revised:X"/>  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
       <arg value="-tag"/>  
       <arg value="spec:X"/>  
503      </javadoc>      </javadoc>
504    </target>    </target>
505    
# Line 467  Line 509 
509            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
510    
511    
   <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>  
   
   
512    <target name="clean"    <target name="clean"
513            description="Removes all build products">            description="Removes all build products">
   
514      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
515    </target>    </target>
516    
517    
518    <target name="dist-clean"    <target name="dist-clean"
519            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
520      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
521      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
522    </target>    </target>
523    
524    
# Line 521  Line 537 
537            description="Runs tck tests for src/main directly">            description="Runs tck tests for src/main directly">
538    
539      <run-tck-tests      <run-tck-tests
540        target="${build.main.java.version}"        target="${java.runtime.target}"
541        workdir="${build.dir}"        workdir="${build.dir}"
542        classes="${product.jar}"/>        classes="${product.jar}">
543          <javac-elements>
544            <compilerarg value="-Werror"/>
545          </javac-elements>
546        </run-tck-tests>
547    </target>    </target>
548    
549    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 551  Line 571 
571            depends="jar"            depends="jar"
572            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
573      <run-jtreg-tests      <run-jtreg-tests
574         target="${build.main.java.version}"         target="${java.runtime.target}"
575         workdir="${build.dir}"         workdir="${build.dir}"
576         classes="${product.jar}"/>         classes="${product.jar}"/>
577    </target>    </target>
578    
579    <target name="test"    <target name="test"
580            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
581            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
582    
583  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->    <target name="test-version-permutations"
584              depends="test9, test10, test11, test12, test9-11, test9-12, clean, test, docs">
585  <!--     <antcall target="jtreg"> -->    </target>
 <!--       <param name="build.main.java.version" value="8"/> -->  
 <!--       <param name="build.main.javac" value="${javac8}"/> -->  
 <!--     </antcall> -->  
586    
587  <!--   </target> -->    <target name="test9">
588        <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>
597      </target>
598    
599  <!--   <target name="test89" -->    <target name="test10">
600  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->      <antcall target="clean"/>
601        <antcall>
602          <param name="java.runtime.target" value="10"/>
603          <param name="build.main.javac" value="${javac10}"/>
604          <param name="build.main.javadoc" value="${javadoc12}"/>
605          <param name="build.main.javadoc.source" value="10"/>
606          <target name="test"/>
607          <target name="docs"/>
608        </antcall>
609      </target>
610    
611  <!--     <antcall target="clean"/> -->    <target name="test11">
612  <!--     <antcall target="test"> -->      <antcall target="clean"/>
613  <!--       <param name="build.main.java.version" value="8"/> -->      <antcall>
614  <!--       <param name="build.main.javac" value="${javac8}"/> -->        <param name="java.runtime.target" value="11"/>
615  <!--     </antcall> -->        <param name="build.main.javac" value="${javac11}"/>
616          <param name="build.main.javadoc" value="${javadoc12}"/>
617          <param name="build.main.javadoc.source" value="11"/>
618          <target name="test"/>
619          <target name="docs"/>
620        </antcall>
621      </target>
622    
623  <!--     <antcall target="clean"/> -->    <target name="test12">
624  <!--     <antcall target="test"> -->      <antcall target="clean"/>
625  <!--       <param name="build.main.java.version" value="9"/> -->      <antcall>
626  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="java.runtime.target" value="12"/>
627  <!--     </antcall> -->        <param name="build.main.javac" value="${javac12}"/>
628          <param name="build.main.javadoc" value="${javadoc12}"/>
629          <param name="build.main.javadoc.source" value="12"/>
630          <target name="test"/>
631          <target name="docs"/>
632        </antcall>
633      </target>
634    
635  <!--   </target> -->    <target name="test9-11">
636        <antcall target="clean"/>
637        <antcall>
638          <param name="java.runtime.target" value="11"/>
639          <param name="build.main.javac" value="${javac9}"/>
640          <param name="build.main.javadoc" value="${javadoc12}"/>
641          <param name="build.main.javadoc.source" value="9"/>
642          <target name="test"/>
643          <target name="docs"/>
644        </antcall>
645      </target>
646    
647      <target name="test9-12">
648        <antcall target="clean"/>
649        <antcall>
650          <param name="java.runtime.target" value="12"/>
651          <param name="build.main.javac" value="${javac9}"/>
652          <param name="build.main.javadoc" value="${javadoc12}"/>
653          <param name="build.main.javadoc.source" value="9"/>
654          <target name="test"/>
655          <target name="docs"/>
656        </antcall>
657      </target>
658    
659    
660    <target name="configure-compiler">    <target name="configure-compiler">
661      <fail message="ant version too old">      <fail message="ant version too old">
662        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
663      </fail>      </fail>
664    
665      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 611  Line 677 
677    </target>    </target>
678    
679    
   
   <!-- 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>  
   
   
680    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
681            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
682    
683      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
684    
# Line 654  Line 689 
689             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
690             includeAntRuntime="false"             includeAntRuntime="false"
691             includeJavaRuntime="false"             includeJavaRuntime="false"
692             executable="${javac9}"             encoding="ASCII"
693               executable="${build.main.javac}"
694             fork="true">             fork="true">
695    
696        <include name="*.java"/>        <include name="*.java"/>
# Line 662  Line 698 
698        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
699        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
700        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
701      </javac>      </javac>
   
702    </target>    </target>
703    
704    
# Line 687  Line 721 
721             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
722             includeAntRuntime="false"             includeAntRuntime="false"
723             includeJavaRuntime="false"             includeJavaRuntime="false"
724               encoding="ASCII"
725             executable="${javac8}"             executable="${javac8}"
726             fork="true">             fork="true">
   
727        <include name="**/*.java"/>        <include name="**/*.java"/>
728        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
729        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
730        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
731        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
732        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
733      </javac>      </javac>
734    </target>    </target>
735    
# Line 717  Line 750 
750             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
751             includeAntRuntime="false"             includeAntRuntime="false"
752             includeJavaRuntime="false"             includeJavaRuntime="false"
753               encoding="ASCII"
754             executable="${javac8}"             executable="${javac8}"
755             fork="true">             fork="true">
   
756        <include name="**/*.java"/>        <include name="**/*.java"/>
757        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
758        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
759        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
760        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
761        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
762      </javac>      </javac>
763    </target>    </target>
764    
# Line 742  Line 774 
774          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
775        </manifest>        </manifest>
776      </jar>      </jar>
   
777    </target>    </target>
778    
779    
# Line 758  Line 789 
789          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
790          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
791          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
792            <compilerarg value="-Werror"/>
793        </javac-elements>        </javac-elements>
794      </run-tck-tests>      </run-tck-tests>
795    </target>    </target>
# Line 775  Line 807 
807    
808    <target name="4jdk8-test"    <target name="4jdk8-test"
809            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
810            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
811    
812    
813    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 792  Line 823 
823               access="${build.javadoc.access}"               access="${build.javadoc.access}"
824               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
825               classpath=""               classpath=""
826                 source="8"
827               executable="${javadoc8}"               executable="${javadoc8}"
828               failonerror = "true">               failonerror = "true">
829        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 799  Line 831 
831        </fileset>        </fileset>
832        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
833        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
834        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
835        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
836        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
837        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!-- @apiNote tag currently unused -->
838        <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;"/>  
839      </javadoc>      </javadoc>
840    </target>    </target>
841    
# Line 818  Line 847 
847    
848    <target name="4jdk8clean"    <target name="4jdk8clean"
849            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
850      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
851    </target>    </target>
852    
853    
# Line 836  Line 863 
863    </target>    </target>
864    
865    
866      <!-- jsr166 4jdk7 (no longer maintained) -->
867    
868    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
869      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
870    
871      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 856  Line 879 
879             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
880             includeAntRuntime="false"             includeAntRuntime="false"
881             includeJavaRuntime="false"             includeJavaRuntime="false"
882               encoding="ASCII"
883             executable="${javac7}"             executable="${javac7}"
884             fork="true">             fork="true">
885    
# Line 865  Line 889 
889        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
890        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
891        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
892      </javac>      </javac>
893    </target>    </target>
894    
895    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
896      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
897    
898      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 886  Line 906 
906             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
907             includeAntRuntime="false"             includeAntRuntime="false"
908             includeJavaRuntime="false"             includeJavaRuntime="false"
909               encoding="ASCII"
910             executable="${javac8}"             executable="${javac8}"
911             fork="true">             fork="true">
912    
# Line 895  Line 916 
916        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
917        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
918        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
919      </javac>      </javac>
920    </target>    </target>
921    
922      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
923      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
924        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
925        <manifest>        <manifest>
# Line 911  Line 927 
927          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
928        </manifest>        </manifest>
929      </jar>      </jar>
   
930    </target>    </target>
931    
932      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
933      <run-tck-tests      <run-tck-tests
934        target="7"        target="7"
935        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 936  Line 947 
947          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
948          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
949          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
950            <compilerarg value="-Werror"/>
951        </javac-elements>        </javac-elements>
952      </run-tck-tests>      </run-tck-tests>
953    </target>    </target>
954    
   
955    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
956    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
957    
958      <junit printsummary="true"      <junit printsummary="true"
959             showoutput="true"             showoutput="true"
# Line 965  Line 975 
975    
976        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
977        </test>        </test>
   
978      </junit>      </junit>
979    </target>    </target>
980    
981    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
982      <run-jtreg-tests      <run-jtreg-tests
983         target="7"         target="7"
984         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
985         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
986    </target>    </target>
987    
988      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
989    
990    <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">  
   
991      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
992      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
993    
# Line 1008  Line 1008 
1008      </javadoc>      </javadoc>
1009    </target>    </target>
1010    
1011      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1012    
1013    <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">  
   
1014      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1015    </target>    </target>
1016    
1017      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1018      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1019    </target>    </target>
1020    
1021      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1022      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1023    </target>    </target>
1024    
1025    
1026    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1027    
1028      <target name="jsr166xcompile" depends="configure-compiler">
1029      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1030    
1031      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1053  Line 1039 
1039             target="5"             target="5"
1040             includeAntRuntime="false"             includeAntRuntime="false"
1041             includeJavaRuntime="false"             includeJavaRuntime="false"
1042               encoding="ASCII"
1043             executable="${javac7}"             executable="${javac7}"
1044             fork="true">             fork="true">
   
1045        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1046        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1047        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1048        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1049        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1050      </javac>      </javac>
1051    </target>    </target>
1052    
1053      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1054      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1055        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1056        <manifest>        <manifest>
# Line 1077  Line 1058 
1058          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1059        </manifest>        </manifest>
1060      </jar>      </jar>
   
1061    </target>    </target>
1062    
1063      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1064      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1065      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1066    
# Line 1098  Line 1075 
1075               failonerror = "true">               failonerror = "true">
1076        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1077        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1078      </javadoc>      </javadoc>
1079    </target>    </target>
1080    
1081      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1082    
1083    <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">  
   
1084      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1085    </target>    </target>
1086    
1087      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1088      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1089    </target>    </target>
1090    
1091    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1092      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1093    </target>    </target>
1094    
   <!-- jsr166y -->  
1095    
1096      <!-- jsr166y (no longer maintained) -->
1097    
1098    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1099      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1100    
1101      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1146  Line 1109 
1109             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1110             includeAntRuntime="false"             includeAntRuntime="false"
1111             includeJavaRuntime="false"             includeJavaRuntime="false"
1112               encoding="ASCII"
1113             executable="${javac7}"             executable="${javac7}"
1114             fork="true">             fork="true">
1115    
# Line 1154  Line 1118 
1118        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1119        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1120        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1121      </javac>      </javac>
1122    </target>    </target>
1123    
1124      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1125      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1126        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1127        <manifest>        <manifest>
# Line 1170  Line 1129 
1129          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1130        </manifest>        </manifest>
1131      </jar>      </jar>
   
1132    </target>    </target>
1133    
1134      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1135      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1136      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1137    
# Line 1191  Line 1146 
1146               failonerror = "true">               failonerror = "true">
1147        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1148        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1149      </javadoc>      </javadoc>
1150    </target>    </target>
1151    
1152      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1153    
1154    <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">  
   
1155      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1156    </target>    </target>
1157    
1158      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1159      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1160    </target>    </target>
1161    
1162    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1163      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1164    </target>    </target>
1165    
1166    
1167    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1168    
1169      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1170      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1171    
1172      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1240  Line 1180 
1180             target="6"             target="6"
1181             includeAntRuntime="false"             includeAntRuntime="false"
1182             includeJavaRuntime="false"             includeJavaRuntime="false"
1183               encoding="ASCII"
1184             executable="${javac7}"             executable="${javac7}"
1185             fork="true">             fork="true">
1186    
# Line 1248  Line 1189 
1189        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1190        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1191        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1192      </javac>      </javac>
1193    </target>    </target>
1194    
1195      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1196      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1197        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1198        <manifest>        <manifest>
# Line 1264  Line 1200 
1200          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1201        </manifest>        </manifest>
1202      </jar>      </jar>
   
1203    </target>    </target>
1204    
1205      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1206      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1207      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1208    
# Line 1284  Line 1216 
1216               executable="${javadoc7}">               executable="${javadoc7}">
1217        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1218        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1219      </javadoc>      </javadoc>
1220    </target>    </target>
1221    
1222      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1223    
1224    <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">  
   
1225      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1226    </target>    </target>
1227    
1228      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1229      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1230    </target>    </target>
1231    
1232    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1233      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1234    </target>    </target>
1235    
1236    <!-- jsr166e -->  
1237      <!-- jsr166e (no longer maintained) -->
1238    
1239    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1240    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1241    
1242    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1243      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1244    
1245      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1341  Line 1260 
1260        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1261        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1262        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1263      </javac>      </javac>
1264    </target>    </target>
1265    
   <!-- jsr166e: find doclint errors -->  
1266    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1267      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1268    
1269      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1369  Line 1285 
1285        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1286        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1287        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1288      </javac>      </javac>
1289    </target>    </target>
1290    
1291      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1292      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1293        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1294        <manifest>        <manifest>
# Line 1385  Line 1296 
1296          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1297        </manifest>        </manifest>
1298      </jar>      </jar>
   
1299    </target>    </target>
1300    
1301      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1302      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1303      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1304    
# Line 1405  Line 1312 
1312               failonerror = "true">               failonerror = "true">
1313        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1314        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1315      </javadoc>      </javadoc>
1316    </target>    </target>
1317    
1318      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1319      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1320      <run-tck-tests      <run-tck-tests
1321        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1322        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1422  Line 1324 
1324        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1325    </target>    </target>
1326    
1327    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1328    
1329  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1330  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1444  Line 1345 
1345      </antcall>      </antcall>
1346    </target>    </target>
1347    
1348      <target name="jsr166e-test" depends="jsr166e-tck"/>
1349    
1350    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
1351    
1352    <target name="jsr166edist"    <target name="jsr166eclean">
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166eclean"  
           description="Removes all jsr166e build products">  
1353      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1354    </target>    </target>
1355    
   
1356    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1357            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1358      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1359    </target>    </target>
1360    
1361    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1362      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1363    </target>    </target>
1364    
1365    
1366  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1367    
1368    <target name="lint">  <!--   <target name="lint"> -->
1369      <antcall target="dists">  <!--     <antcall target="dists"> -->
1370        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1371      </antcall>  <!--     </antcall> -->
1372    </target>  <!--   </target> -->
1373    
1374  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1375    <target name="lint-private">    <target name="doclint-private">
1376      <antcall target="dist">      <antcall target="dist">
1377        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1378      </antcall>      </antcall>
1379    </target>    </target>
1380    
1381    
1382    <!-- ==============================================================
1383      Experimental errorprone support
1384      https://errorprone.info
1385      https://errorprone.info/docs/installation
1386      https://github.com/google/error-prone/issues/1143
1387    =================================================================== -->
1388      <path id="errorprone.processorpath.path">
1389        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1390        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1391        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1392        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1393      </path>
1394      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1395      <property name="errorprone.jsr166.user.flags" value=""/>
1396      <property name="errorprone.jsr166.flags"
1397                value="-Xep:HashtableContains:OFF
1398                       -Xep:JdkObsolete:OFF
1399                       -Xep:MissingOverride:OFF
1400                       -Xep:MissingFail:OFF
1401                       -Xep:ThreadPriorityCheck:OFF
1402                       -Xep:MixedArrayDimensions:ERROR
1403                       -Xep:RemoveUnusedImports:ERROR
1404                       -Xep:EmptyIf:ERROR
1405                       -Xep:MultipleTopLevelClasses:ERROR
1406                       -Xep:ClassName:ERROR
1407                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1408                       -Xep:RedundantThrows:ERROR
1409                       -Xep:IdentityBinaryExpression:WARN
1410                       -Xep:ConstructorInvokesOverridable:WARN
1411                       -Xep:MethodCanBeStatic:WARN
1412                       ${errorprone.jsr166.user.flags}"/>
1413      <!-- -Xep:WildcardImport:ERROR -->
1414      <property name="errorprone.jsr166.test.flags"
1415                value="-Xep:StringSplitter:OFF
1416                       -Xep:BoxedPrimitiveConstructor:OFF
1417                       -Xep:ModifyingCollectionWithItself:OFF"/>
1418      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1419      <target name="errorprone"
1420              depends="clean, configure-compiler"
1421              description="Run errorprone over jsr166 source code (experimental)">
1422    
1423        <local name="destdir"/>
1424        <property name="destdir" value="${build.classes.dir}/java.base"/>
1425        <mkdir dir="${destdir}"/>
1426    
1427        <javac srcdir="${src.dir}"
1428               destdir="${destdir}"
1429               debug="${build.debug}"
1430               debuglevel="${build.debuglevel}"
1431               deprecation="${build.deprecation}"
1432               classpath=""
1433               includeAntRuntime="false"
1434               includeJavaRuntime="false"
1435               encoding="ASCII"
1436               executable="${build.main.javac}"
1437               fork="true">
1438    
1439          <include name="**/*.java"/>
1440          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1441          <compilerarg value="-J--illegal-access=permit"/>
1442          <compilerarg value="-XDcompilePolicy=simple"/>
1443          <compilerarg value="-processorpath"/>
1444          <compilerarg pathref="errorprone.processorpath.path"/>
1445          <compilerarg value="-Xplugin:ErrorProne
1446                              ${errorprone.jsr166.flags}"/>
1447          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1448          <compilerarg value="-Xprefer:source"/>
1449          <compilerarg value="-XDignore.symbol.file=true"/>
1450          <compilerarg value="-Xlint:all"/>
1451          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1452          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1453          <compilerarg line="${build.args}"/>
1454        </javac>
1455    
1456        <jar destfile="${product.jar}">
1457          <fileset dir="${destdir}"/>
1458        </jar>
1459    
1460        <run-tck-tests
1461          target="${java.runtime.target}"
1462          workdir="${build.dir}"
1463          classes="${product.jar}">
1464          <javac-elements>
1465            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1466            <compilerarg value="-J--illegal-access=permit"/>
1467            <compilerarg value="-XDcompilePolicy=simple"/>
1468            <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1469            <compilerarg value="-Xplugin:ErrorProne
1470                                ${errorprone.jsr166.flags}
1471                                ${errorprone.jsr166.test.flags}"/>
1472            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1473          </javac-elements>
1474        </run-tck-tests>
1475      </target>
1476    
1477      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1478      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1479      <target name="errorprone-jtreg"
1480              depends="jar"
1481              description="Run errorprone over jtreg tests (experimental)">
1482    
1483        <run-jtreg-tests
1484           target="${java.runtime.target}"
1485           workdir="${build.dir}"
1486           classes="${product.jar}"
1487           verbose="all">
1488          <jtreg-elements>
1489            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1490            <arg value="-javacoption:-processorpath"/>
1491            <arg value="-javacoption:${errorprone.processorpath}"/>
1492            <arg value="-javacoption:-Xplugin:ErrorProne
1493                                ${errorprone.jsr166.flags}
1494                                ${errorprone.jsr166.test.flags}
1495                                -Xep:MultipleTopLevelClasses:WARN
1496                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1497          </jtreg-elements>
1498        </run-jtreg-tests>
1499      </target>
1500    
1501    
1502    <!-- ==============================================================
1503      Running guava tests against jsr166 code
1504    =================================================================== -->
1505    
1506    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1507    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1508    <!-- <property name="guava.version" value="21.0"/> -->
1509    
1510    <!-- HOWTO debug print a path id -->
1511    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1512    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1513    
1514    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1515    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1516    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1517    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1518    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1519    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1520    
1521    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1522    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1523    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1524    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1525    
1526    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1527    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1528    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1529    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1530    
1531    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1532    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1533    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1534    
1535      <target name="init-ivy">
1536        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1537             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1538        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1539                 classpath="${build.dir}/ivy.jar"/>
1540      </target>
1541    
1542      <target name="guava-tests" depends="jar, init-ivy"
1543              description="Guava tests run against jsr166 collections">
1544        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1545        <mkdir dir="${guava.dir}"/>
1546        <ivy:retrieve pathid="guava.testlib.classpath"
1547          type="jar,bundle" inline="true" conf="default,master"
1548          pattern="${guava.dir}/[artifact].[ext]"
1549          organisation="com.google.guava" module="guava-testlib"/>
1550        <property name="guava.version" value="21.0"/>
1551        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1552             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1553        <junit printsummary="true" showoutput="true" haltonfailure="true"
1554               jvm="${build.main.java}" fork="true">
1555          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1556          <formatter type="brief"/>
1557          <classpath>
1558            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1559            <path refid="guava.testlib.classpath"/>
1560          </classpath>
1561    
1562          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1563          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1564        </junit>
1565      </target>
1566    
1567  </project>  </project>

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

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