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

Diff of /jsr166/build.xml

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

revision 1.213, Sat Jun 4 23:49:29 2016 UTC revision 1.289, Sun Dec 2 22:40:03 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      <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
200      <!-- 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 release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
206    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <!-- But pin to jdk 10 until fix for -->
207      <!-- 8211194: javadoc -link doesn't take module path into consideration -->
208      <property name="java.docroot.url"   value="${java10.docroot.url}"/>
209    
210    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
211    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 198  Line 213 
213    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
214    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
215    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
216      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
217      <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
218      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
219    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
220    
221    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 230  Line 248 
248    
249      <local name="modules"/>      <local name="modules"/>
250      <condition property="modules">      <condition property="modules">
251        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
252        </condition>
253    
254        <local name="use-doclint"/>
255        <condition property="use-doclint">
256          <not> <equals arg1="@{target}" arg2="7"/> </not>
257      </condition>      </condition>
258    
259      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
# Line 245  Line 268 
268             classpath="${junit.jar}"             classpath="${junit.jar}"
269             includeAntRuntime="false"             includeAntRuntime="false"
270             includeJavaRuntime="false"             includeJavaRuntime="false"
271               encoding="ASCII"
272             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
273             fork="true">             fork="true">
274    
275        <include name="*.java"/>        <include name="*.java"/>
276        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
277        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
278          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
279        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
280        <compilerarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
281        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
282        <javac-elements/>        <javac-elements/>
283    
# Line 263  Line 288 
288            jvm="${java@{target}}"            jvm="${java@{target}}"
289            fork="true">            fork="true">
290          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
291          <jvmarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
292            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
293            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
294            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
295            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
296            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
297          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
298            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
299            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
300    
301          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
302          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
# Line 283  Line 315 
315    </macrodef>    </macrodef>
316    
317    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
318    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
319      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
320        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
321      </patternset>    <macrodef name="defjtregtests">
322    </fileset>      <attribute name="v"/>
323        <sequential>
324    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
325      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
326        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
327      </patternset>      </patternset>
328    </fileset>    </fileset>
329        </sequential>
330      </macrodef>
331    
332    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="12"/>
333      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="11"/>
334        <include name="**/*.java"/>    <defjtregtests v="10"/>
335      </patternset>    <defjtregtests v="9"/>
336    </fileset>    <defjtregtests v="8"/>
337      <defjtregtests v="7"/>
338    
339    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
340    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
341    
342    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
343      <!-- 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"/>  
344      <attribute name="target"/>      <attribute name="target"/>
345      <attribute name="workdir"/>      <attribute name="workdir"/>
346      <attribute name="classes"/>      <attribute name="classes"/>
347        <attribute name="verbose" default="${jtreg.verbose}"/>
348      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
349        <element name="jtreg-elements" optional="true"/>
350    
351      <sequential>      <sequential>
352    
# Line 322  Line 355 
355    
356      <local name="modules"/>      <local name="modules"/>
357      <condition property="modules">      <condition property="modules">
358        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
359      </condition>      </condition>
360    
361      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
362      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
363             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
364             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
365        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
366        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
367        <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"/>
368          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
369        <arg value="-agentvm"/>        <arg value="-agentvm"/>
370        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-noreport"/>
371          <arg value="-verbose:@{verbose}"/>
372        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
373        <arg value="-automatic"/>        <arg value="-automatic"/>
374        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
375        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
376        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
377          <jtreg-elements/>
378      </jtreg>      </jtreg>
379      </sequential>      </sequential>
380    </macrodef>    </macrodef>
# Line 356  Line 390 
390    
391    <!-- Main targets -->    <!-- Main targets -->
392    
393    <property name="build.main.java.version" value="9"/>    <!-- Default values: may seem strange ... -->
394      <!-- At runtime, target latest LTS, i.e. jdk11 -->
395      <!-- But at build time, target jdk9, for maximal binary portability -->
396      <!-- Use javadoc12, so we can use override-methods=summary, and JDK-8202628 -->
397      <property name="build.main.java.version" value="11"/>
398      <property name="build.main.java" value="${java11}"/>
399    <property name="build.main.javac" value="${javac9}"/>    <property name="build.main.javac" value="${javac9}"/>
400      <property name="build.main.javadoc" value="${javadoc12}"/>
401    
402    <target name="dists"    <target name="dists"
403            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
404            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
405              <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
406    
407    <target name="compile"    <target name="compile"
408            depends="configure-compiler"            depends="configure-compiler"
409            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
410    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
411      <local name="destdir"/>      <local name="destdir"/>
412      <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"/>  
413    
414      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
415    
# Line 389  Line 421 
421             classpath=""             classpath=""
422             includeAntRuntime="false"             includeAntRuntime="false"
423             includeJavaRuntime="false"             includeJavaRuntime="false"
424               encoding="ASCII"
425             executable="${build.main.javac}"             executable="${build.main.javac}"
426             fork="true">             fork="true">
427    
428        <include name="**/*.java"/>        <include name="**/*.java"/>
429        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
430        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
431        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
432        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all,-removal"/>
433          <compilerarg line="--doclint-format html5"/>
434          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
435        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
436        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
437        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
438    
# Line 430  Line 464 
464      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
465      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
466    
467    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
468    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
469    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
470    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
471    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
472      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
473               packagenames="none"               packagenames="none"
474               link="${java9.api.url}"               link="${java11.api.url}"
475               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
476               access="${build.javadoc.access}"               access="${build.javadoc.access}"
477               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
478               classpath=""               classpath=""
479               executable="${javadoc9}">               source="11"
480                 executable="${build.main.javadoc}">
481        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
482          <include name="**/*.java"/>          <include name="**/*.java"/>
483        </fileset>        </fileset>
484        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java10.docroot.url}"/>
485        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
486        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
487  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
488        <arg value="-tag"/>        <arg value="--patch-module=java.base=${src.dir}"/>
489        <arg value="${javadoc.jls.option}"/>  <!-- old school frames via docs/index.html?overview-summary.html -->
490        <arg value="-tag"/>        <arg value="--frames"/>
491        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="--override-methods=summary"/>
492        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
493        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
494        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
495        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
496  <!-- tags added in jdk9 -->  <!-- tags added in jdk9: currently unused -->
497        <arg value="-tag"/>  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
498        <arg value="revised:X"/>  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
       <arg value="-tag"/>  
       <arg value="spec:X"/>  
499      </javadoc>      </javadoc>
500    </target>    </target>
501    
# Line 467  Line 505 
505            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
506    
507    
   <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>  
   
   
508    <target name="clean"    <target name="clean"
509            description="Removes all build products">            description="Removes all build products">
   
510      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
511    </target>    </target>
512    
513    
514    <target name="dist-clean"    <target name="dist-clean"
515            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
516      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
517      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
518    </target>    </target>
519    
520    
# Line 523  Line 535 
535      <run-tck-tests      <run-tck-tests
536        target="${build.main.java.version}"        target="${build.main.java.version}"
537        workdir="${build.dir}"        workdir="${build.dir}"
538        classes="${product.jar}"/>        classes="${product.jar}">
539          <javac-elements>
540            <compilerarg value="-Werror"/>
541          </javac-elements>
542        </run-tck-tests>
543    </target>    </target>
544    
545    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 558  Line 574 
574    
575    <target name="test"    <target name="test"
576            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
577            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
   
 <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  
578    
579  <!--     <antcall target="jtreg"> -->    <target name="test-version-permutations"
580  <!--       <param name="build.main.java.version" value="8"/> -->            depends="test9, test10, test11, test12, test9-11, test9-12, clean, test, docs">
581  <!--       <param name="build.main.javac" value="${javac8}"/> -->    </target>
 <!--     </antcall> -->  
582    
583  <!--   </target> -->    <target name="test9">
584        <antcall target="clean"/>
585        <antcall>
586          <param name="build.main.java.version" value="9"/>
587          <param name="build.main.java" value="${java9}"/>
588          <param name="build.main.javac" value="${javac9}"/>
589          <target name="test"/>
590        </antcall>
591      </target>
592    
593  <!--   <target name="test89" -->    <target name="test10">
594  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->      <antcall target="clean"/>
595        <antcall>
596          <param name="build.main.java.version" value="10"/>
597          <param name="build.main.java" value="${java10}"/>
598          <param name="build.main.javac" value="${javac10}"/>
599          <param name="build.main.javadoc" value="${javadoc10}"/>
600          <target name="test"/>
601          <target name="docs"/>
602        </antcall>
603      </target>
604    
605  <!--     <antcall target="clean"/> -->    <target name="test11">
606  <!--     <antcall target="test"> -->      <antcall target="clean"/>
607  <!--       <param name="build.main.java.version" value="8"/> -->      <antcall>
608  <!--       <param name="build.main.javac" value="${javac8}"/> -->        <param name="build.main.java.version" value="11"/>
609  <!--     </antcall> -->        <param name="build.main.java" value="${java11}"/>
610          <param name="build.main.javac" value="${javac11}"/>
611          <param name="build.main.javadoc" value="${javadoc11}"/>
612          <target name="test"/>
613          <target name="docs"/>
614        </antcall>
615      </target>
616    
617  <!--     <antcall target="clean"/> -->    <target name="test12">
618  <!--     <antcall target="test"> -->      <antcall target="clean"/>
619  <!--       <param name="build.main.java.version" value="9"/> -->      <antcall>
620  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="build.main.java.version" value="12"/>
621  <!--     </antcall> -->        <param name="build.main.java" value="${java12}"/>
622          <param name="build.main.javac" value="${javac12}"/>
623          <param name="build.main.javadoc" value="${javadoc12}"/>
624          <target name="test"/>
625          <target name="docs"/>
626        </antcall>
627      </target>
628    
629  <!--   </target> -->    <target name="test9-11">
630        <antcall target="clean"/>
631        <antcall>
632          <param name="build.main.java.version" value="11"/>
633          <param name="build.main.java" value="${java11}"/>
634          <param name="build.main.javac" value="${javac9}"/>
635          <param name="build.main.javadoc" value="${javadoc11}"/>
636          <target name="test"/>
637          <target name="docs"/>
638        </antcall>
639      </target>
640    
641      <target name="test9-12">
642        <antcall target="clean"/>
643        <antcall>
644          <param name="build.main.java.version" value="12"/>
645          <param name="build.main.java" value="${java12}"/>
646          <param name="build.main.javac" value="${javac9}"/>
647          <param name="build.main.javadoc" value="${javadoc12}"/>
648          <target name="test"/>
649          <target name="docs"/>
650        </antcall>
651      </target>
652    
653    
654    <target name="configure-compiler">    <target name="configure-compiler">
655      <fail message="ant version too old">      <fail message="ant version too old">
656        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
657      </fail>      </fail>
658    
659      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 611  Line 671 
671    </target>    </target>
672    
673    
   
   <!-- 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>  
   
   
674    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
675            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
676    
677      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
678    
# Line 654  Line 683 
683             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
684             includeAntRuntime="false"             includeAntRuntime="false"
685             includeJavaRuntime="false"             includeJavaRuntime="false"
686             executable="${javac9}"             encoding="ASCII"
687               executable="${build.main.javac}"
688             fork="true">             fork="true">
689    
690        <include name="*.java"/>        <include name="*.java"/>
# Line 662  Line 692 
692        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
693        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
694        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
695      </javac>      </javac>
   
696    </target>    </target>
697    
698    
# Line 687  Line 715 
715             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
716             includeAntRuntime="false"             includeAntRuntime="false"
717             includeJavaRuntime="false"             includeJavaRuntime="false"
718               encoding="ASCII"
719             executable="${javac8}"             executable="${javac8}"
720             fork="true">             fork="true">
   
721        <include name="**/*.java"/>        <include name="**/*.java"/>
722        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
723        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
724        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
725        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
726        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
727      </javac>      </javac>
728    </target>    </target>
729    
# Line 717  Line 744 
744             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
745             includeAntRuntime="false"             includeAntRuntime="false"
746             includeJavaRuntime="false"             includeJavaRuntime="false"
747               encoding="ASCII"
748             executable="${javac8}"             executable="${javac8}"
749             fork="true">             fork="true">
   
750        <include name="**/*.java"/>        <include name="**/*.java"/>
751        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
752        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
753        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
754        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
755        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
756      </javac>      </javac>
757    </target>    </target>
758    
# Line 742  Line 768 
768          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
769        </manifest>        </manifest>
770      </jar>      </jar>
   
771    </target>    </target>
772    
773    
# Line 758  Line 783 
783          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
784          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
785          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
786            <compilerarg value="-Werror"/>
787        </javac-elements>        </javac-elements>
788      </run-tck-tests>      </run-tck-tests>
789    </target>    </target>
# Line 775  Line 801 
801    
802    <target name="4jdk8-test"    <target name="4jdk8-test"
803            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
804            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
805    
806    
807    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 792  Line 817 
817               access="${build.javadoc.access}"               access="${build.javadoc.access}"
818               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
819               classpath=""               classpath=""
820                 source="8"
821               executable="${javadoc8}"               executable="${javadoc8}"
822               failonerror = "true">               failonerror = "true">
823        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 799  Line 825 
825        </fileset>        </fileset>
826        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
827        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
828        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
829        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
830        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
831        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!-- @apiNote tag currently unused -->
832        <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;"/>  
833      </javadoc>      </javadoc>
834    </target>    </target>
835    
# Line 818  Line 841 
841    
842    <target name="4jdk8clean"    <target name="4jdk8clean"
843            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
844      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
845    </target>    </target>
846    
847    
# Line 836  Line 857 
857    </target>    </target>
858    
859    
860      <!-- jsr166 4jdk7 (no longer maintained) -->
861    
862    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
863      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
864    
865      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 856  Line 873 
873             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
874             includeAntRuntime="false"             includeAntRuntime="false"
875             includeJavaRuntime="false"             includeJavaRuntime="false"
876               encoding="ASCII"
877             executable="${javac7}"             executable="${javac7}"
878             fork="true">             fork="true">
879    
# Line 865  Line 883 
883        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
884        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
885        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
886      </javac>      </javac>
887    </target>    </target>
888    
889    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
890      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
891    
892      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 886  Line 900 
900             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
901             includeAntRuntime="false"             includeAntRuntime="false"
902             includeJavaRuntime="false"             includeJavaRuntime="false"
903               encoding="ASCII"
904             executable="${javac8}"             executable="${javac8}"
905             fork="true">             fork="true">
906    
# Line 895  Line 910 
910        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
911        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
912        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
913      </javac>      </javac>
914    </target>    </target>
915    
916      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
917      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
918        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
919        <manifest>        <manifest>
# Line 911  Line 921 
921          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
922        </manifest>        </manifest>
923      </jar>      </jar>
   
924    </target>    </target>
925    
926      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
927      <run-tck-tests      <run-tck-tests
928        target="7"        target="7"
929        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 936  Line 941 
941          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
942          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
943          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
944            <compilerarg value="-Werror"/>
945        </javac-elements>        </javac-elements>
946      </run-tck-tests>      </run-tck-tests>
947    </target>    </target>
948    
   
949    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
950    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
951    
952      <junit printsummary="true"      <junit printsummary="true"
953             showoutput="true"             showoutput="true"
# Line 965  Line 969 
969    
970        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
971        </test>        </test>
   
972      </junit>      </junit>
973    </target>    </target>
974    
975    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
976      <run-jtreg-tests      <run-jtreg-tests
977         target="7"         target="7"
978         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
979         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
980    </target>    </target>
981    
982      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
983    
984    <target name="4jdk7-test"    <target name="4jdk7docs">
           depends="4jdk7-tck, 4jdk7-jtreg"  
           description="Runs tck and jtreg tests for jsr166-4jdk7">  
   </target>  
   
   
   <target name="4jdk7docs"  
           description="Builds javadocs for src/jdk7 to dist dir">  
   
985      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
986      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
987    
# Line 1008  Line 1002 
1002      </javadoc>      </javadoc>
1003    </target>    </target>
1004    
1005      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1006    
1007    <target name="4jdk7dist"    <target name="4jdk7clean">
           depends="4jdk7dist-jar, 4jdk7dist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="4jdk7clean"  
           description="Removes all 4jdk7 build products">  
   
1008      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1009    </target>    </target>
1010    
1011      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1012      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1013    </target>    </target>
1014    
1015      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1016      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1017    </target>    </target>
1018    
1019    
1020    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1021    
1022      <target name="jsr166xcompile" depends="configure-compiler">
1023      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1024    
1025      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1053  Line 1033 
1033             target="5"             target="5"
1034             includeAntRuntime="false"             includeAntRuntime="false"
1035             includeJavaRuntime="false"             includeJavaRuntime="false"
1036               encoding="ASCII"
1037             executable="${javac7}"             executable="${javac7}"
1038             fork="true">             fork="true">
   
1039        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1040        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1041        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1042        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1043        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1044      </javac>      </javac>
1045    </target>    </target>
1046    
1047      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1048      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1049        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1050        <manifest>        <manifest>
# Line 1077  Line 1052 
1052          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1053        </manifest>        </manifest>
1054      </jar>      </jar>
   
1055    </target>    </target>
1056    
1057      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1058      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1059      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1060    
# Line 1098  Line 1069 
1069               failonerror = "true">               failonerror = "true">
1070        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1071        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1072      </javadoc>      </javadoc>
1073    </target>    </target>
1074    
1075      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1076    
1077    <target name="jsr166xdist"    <target name="jsr166xclean">
           depends="jsr166xdist-jar, jsr166xdist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166xclean"  
           description="Removes all jsr166x build products">  
   
1078      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1079    </target>    </target>
1080    
1081      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1082      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1083    </target>    </target>
1084    
1085    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1086      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1087    </target>    </target>
1088    
   <!-- jsr166y -->  
   
1089    
1090    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1091    
1092      <target name="jsr166ycompile" depends="configure-compiler">
1093      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1094    
1095      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1146  Line 1103 
1103             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1104             includeAntRuntime="false"             includeAntRuntime="false"
1105             includeJavaRuntime="false"             includeJavaRuntime="false"
1106               encoding="ASCII"
1107             executable="${javac7}"             executable="${javac7}"
1108             fork="true">             fork="true">
1109    
# Line 1154  Line 1112 
1112        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1113        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1114        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1115      </javac>      </javac>
1116    </target>    </target>
1117    
1118      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1119      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1120        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1121        <manifest>        <manifest>
# Line 1170  Line 1123 
1123          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1124        </manifest>        </manifest>
1125      </jar>      </jar>
   
1126    </target>    </target>
1127    
1128      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1129      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1130      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1131    
# Line 1191  Line 1140 
1140               failonerror = "true">               failonerror = "true">
1141        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1142        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1143      </javadoc>      </javadoc>
1144    </target>    </target>
1145    
1146      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1147    
1148    <target name="jsr166ydist"    <target name="jsr166yclean">
           depends="jsr166ydist-jar, jsr166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166yclean"  
           description="Removes all jsr166y build products">  
   
1149      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1150    </target>    </target>
1151    
1152      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1153      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1154    </target>    </target>
1155    
1156    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1157      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1158    </target>    </target>
1159    
1160    
1161    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1162    
1163      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1164      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1165    
1166      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1240  Line 1174 
1174             target="6"             target="6"
1175             includeAntRuntime="false"             includeAntRuntime="false"
1176             includeJavaRuntime="false"             includeJavaRuntime="false"
1177               encoding="ASCII"
1178             executable="${javac7}"             executable="${javac7}"
1179             fork="true">             fork="true">
1180    
# Line 1248  Line 1183 
1183        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1184        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1185        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1186      </javac>      </javac>
1187    </target>    </target>
1188    
1189      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1190      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1191        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1192        <manifest>        <manifest>
# Line 1264  Line 1194 
1194          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1195        </manifest>        </manifest>
1196      </jar>      </jar>
   
1197    </target>    </target>
1198    
1199      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1200      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1201      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1202    
# Line 1284  Line 1210 
1210               executable="${javadoc7}">               executable="${javadoc7}">
1211        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1212        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1213      </javadoc>      </javadoc>
1214    </target>    </target>
1215    
1216      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1217    
1218    <target name="extra166ydist"    <target name="extra166yclean">
           depends="extra166ydist-jar, extra166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="extra166yclean"  
           description="Removes all extra166y build products">  
   
1219      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1220    </target>    </target>
1221    
1222      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1223      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1224    </target>    </target>
1225    
1226    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1227      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1228    </target>    </target>
1229    
1230    <!-- jsr166e -->  
1231      <!-- jsr166e (no longer maintained) -->
1232    
1233    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1234    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1235    
1236    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1237      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1238    
1239      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1341  Line 1254 
1254        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1255        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1256        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1257      </javac>      </javac>
1258    </target>    </target>
1259    
   <!-- jsr166e: find doclint errors -->  
1260    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1261      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1262    
1263      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1369  Line 1279 
1279        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1280        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1281        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1282      </javac>      </javac>
1283    </target>    </target>
1284    
1285      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1286      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1287        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1288        <manifest>        <manifest>
# Line 1385  Line 1290 
1290          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1291        </manifest>        </manifest>
1292      </jar>      </jar>
   
1293    </target>    </target>
1294    
1295      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1296      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1297      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1298    
# Line 1405  Line 1306 
1306               failonerror = "true">               failonerror = "true">
1307        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1308        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1309      </javadoc>      </javadoc>
1310    </target>    </target>
1311    
1312      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1313      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1314      <run-tck-tests      <run-tck-tests
1315        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1316        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1422  Line 1318 
1318        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1319    </target>    </target>
1320    
1321    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1322    
1323  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1324  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1444  Line 1339 
1339      </antcall>      </antcall>
1340    </target>    </target>
1341    
1342      <target name="jsr166e-test" depends="jsr166e-tck"/>
1343    
1344    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
   
   <target name="jsr166edist"  
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
1345    
1346    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1347      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1348    </target>    </target>
1349    
   
1350    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1351            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1352      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1353    </target>    </target>
1354    
1355    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1356      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1357    </target>    </target>
1358    
1359    
1360  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1361    
1362    <target name="lint">  <!--   <target name="lint"> -->
1363      <antcall target="dists">  <!--     <antcall target="dists"> -->
1364        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1365      </antcall>  <!--     </antcall> -->
1366    </target>  <!--   </target> -->
1367    
1368  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1369    <target name="lint-private">    <target name="doclint-private">
1370      <antcall target="dist">      <antcall target="dist">
1371        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1372      </antcall>      </antcall>
1373    </target>    </target>
1374    
1375    
1376    <!-- ==============================================================
1377      Experimental errorprone support
1378      https://errorprone.info
1379      https://errorprone.info/docs/installation
1380      https://github.com/google/error-prone/issues/1143
1381    =================================================================== -->
1382      <path id="errorprone.processorpath.path">
1383        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1384        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1385        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1386        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1387      </path>
1388      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1389      <property name="errorprone.jsr166.user.flags" value=""/>
1390      <property name="errorprone.jsr166.flags"
1391                value="-Xep:HashtableContains:OFF
1392                       -Xep:JdkObsolete:OFF
1393                       -Xep:MissingOverride:OFF
1394                       -Xep:MissingFail:OFF
1395                       -Xep:ThreadPriorityCheck:OFF
1396                       -Xep:MixedArrayDimensions:ERROR
1397                       -Xep:RemoveUnusedImports:ERROR
1398                       -Xep:EmptyIf:ERROR
1399                       -Xep:MultipleTopLevelClasses:ERROR
1400                       -Xep:ClassName:ERROR
1401                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1402                       -Xep:RedundantThrows:ERROR
1403                       -Xep:IdentityBinaryExpression:WARN
1404                       -Xep:ConstructorInvokesOverridable:WARN
1405                       -Xep:MethodCanBeStatic:WARN
1406                       ${errorprone.jsr166.user.flags}"/>
1407      <!-- -Xep:WildcardImport:ERROR -->
1408      <property name="errorprone.jsr166.test.flags"
1409                value="-Xep:StringSplitter:OFF
1410                       -Xep:BoxedPrimitiveConstructor:OFF
1411                       -Xep:ModifyingCollectionWithItself:OFF"/>
1412      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1413      <target name="errorprone"
1414              depends="clean, configure-compiler"
1415              description="Run errorprone over jsr166 source code (experimental)">
1416    
1417        <local name="destdir"/>
1418        <property name="destdir" value="${build.classes.dir}/java.base"/>
1419        <mkdir dir="${destdir}"/>
1420    
1421        <javac srcdir="${src.dir}"
1422               destdir="${destdir}"
1423               debug="${build.debug}"
1424               debuglevel="${build.debuglevel}"
1425               deprecation="${build.deprecation}"
1426               classpath=""
1427               includeAntRuntime="false"
1428               includeJavaRuntime="false"
1429               encoding="ASCII"
1430               executable="${build.main.javac}"
1431               fork="true">
1432    
1433          <include name="**/*.java"/>
1434          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1435          <compilerarg value="-J--illegal-access=permit"/>
1436          <compilerarg value="-XDcompilePolicy=simple"/>
1437          <compilerarg value="-processorpath"/>
1438          <compilerarg pathref="errorprone.processorpath.path"/>
1439          <compilerarg value="-Xplugin:ErrorProne
1440                              ${errorprone.jsr166.flags}"/>
1441          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1442          <compilerarg value="-Xprefer:source"/>
1443          <compilerarg value="-XDignore.symbol.file=true"/>
1444          <compilerarg value="-Xlint:all"/>
1445          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1446          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1447          <compilerarg line="${build.args}"/>
1448        </javac>
1449    
1450        <jar destfile="${product.jar}">
1451          <fileset dir="${destdir}"/>
1452        </jar>
1453    
1454        <run-tck-tests
1455          target="${build.main.java.version}"
1456          workdir="${build.dir}"
1457          classes="${product.jar}">
1458          <javac-elements>
1459            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1460            <compilerarg value="-J--illegal-access=permit"/>
1461            <compilerarg value="-XDcompilePolicy=simple"/>
1462            <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1463            <compilerarg value="-Xplugin:ErrorProne
1464                                ${errorprone.jsr166.flags}
1465                                ${errorprone.jsr166.test.flags}"/>
1466            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1467          </javac-elements>
1468        </run-tck-tests>
1469      </target>
1470    
1471      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1472      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1473      <target name="errorprone-jtreg"
1474              depends="jar"
1475              description="Run errorprone over jtreg tests (experimental)">
1476    
1477        <run-jtreg-tests
1478           target="${build.main.java.version}"
1479           workdir="${build.dir}"
1480           classes="${product.jar}"
1481           verbose="all">
1482          <jtreg-elements>
1483            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1484            <arg value="-javacoption:-processorpath"/>
1485            <arg value="-javacoption:${errorprone.processorpath}"/>
1486            <arg value="-javacoption:-Xplugin:ErrorProne
1487                                ${errorprone.jsr166.flags}
1488                                ${errorprone.jsr166.test.flags}
1489                                -Xep:MultipleTopLevelClasses:WARN
1490                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1491          </jtreg-elements>
1492        </run-jtreg-tests>
1493      </target>
1494    
1495    
1496    <!-- ==============================================================
1497      Running guava tests against jsr166 code
1498    =================================================================== -->
1499    
1500    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1501    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1502    <!-- <property name="guava.version" value="21.0"/> -->
1503    
1504    <!-- HOWTO debug print a path id -->
1505    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1506    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1507    
1508    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1509    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1510    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1511    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1512    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1513    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1514    
1515    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1516    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1517    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1518    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1519    
1520    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1521    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1522    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1523    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1524    
1525    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1526    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1527    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1528    
1529      <target name="init-ivy">
1530        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1531             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1532        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1533                 classpath="${build.dir}/ivy.jar"/>
1534      </target>
1535    
1536      <target name="guava-tests" depends="jar, init-ivy"
1537              description="Guava tests run against jsr166 collections">
1538        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1539        <mkdir dir="${guava.dir}"/>
1540        <ivy:retrieve pathid="guava.testlib.classpath"
1541          type="jar,bundle" inline="true" conf="default,master"
1542          pattern="${guava.dir}/[artifact].[ext]"
1543          organisation="com.google.guava" module="guava-testlib"/>
1544        <property name="guava.version" value="21.0"/>
1545        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1546             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1547        <junit printsummary="true" showoutput="true" haltonfailure="true"
1548               jvm="${build.main.java}" fork="true">
1549          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1550          <formatter type="brief"/>
1551          <classpath>
1552            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1553            <path refid="guava.testlib.classpath"/>
1554          </classpath>
1555    
1556          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1557          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1558        </junit>
1559      </target>
1560    
1561  </project>  </project>

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

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8