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

Diff of /jsr166/build.xml

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

revision 1.227 by jsr166, Sat Dec 17 22:18:25 2016 UTC revision 1.298 by jsr166, Wed May 22 17:36:58 2019 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage"  <project name="jsr166" default="usage"
2    xmlns:if="ant:if" xmlns:unless="ant:unless">    xmlns:if="ant:if"
3      xmlns:unless="ant:unless"
4      xmlns:ivy="antlib:org.apache.ivy.ant">
5    
6    <description>    <description>
7  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 17  Line 19 
19    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
20    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
21    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
   $HOME/jdk/jdk7  
22    $HOME/jdk/jdk8    $HOME/jdk/jdk8
23    $HOME/jdk/jdk9    $HOME/jdk/jdk9
24      $HOME/jdk/jdk10
25      $HOME/jdk/jdk11
26      $HOME/jdk/jdk12
27      $HOME/jdk/jdk13
28    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  
29    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
30    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
31      $HOME/jdk/src/jdk10
32      $HOME/jdk/src/jdk11
33      $HOME/jdk/src/jdk12
34      $HOME/jdk/src/jdk13
35    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
36    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
37    
38    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
39    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
40    for $N in 6 7 8 9 ...    for $N in 8 .. 13 ...
41    
42    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.  
43  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
44    </description>    </description>
45    
# Line 52  Line 57 
57    
58    
59    <!-- Compilation options -->    <!-- Compilation options -->
   <property name="build.sourcelevel"    value="6"/>  
60    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
61    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
62    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
# Line 103  Line 107 
107      <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"
108        unless:set="have.java.base"/>        unless:set="have.java.base"/>
109      <local name="modules"/>      <local name="modules"/>
110      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/>
111      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
112      <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"/>
113      <path id="bootclasspath@{v}" unless:set="modules">      <path id="bootclasspath@{v}" unless:set="modules">
# Line 133  Line 137 
137    <defjdklocations v="7"/>    <defjdklocations v="7"/>
138    <defjdklocations v="8"/>    <defjdklocations v="8"/>
139    <defjdklocations v="9"/>    <defjdklocations v="9"/>
140      <defjdklocations v="10"/>
141      <defjdklocations v="11"/>
142      <defjdklocations v="12"/>
143      <defjdklocations v="13"/>
144    
145    <!-- Source locations -->    <!-- Source locations -->
146    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 142  Line 150 
150    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
151    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
152    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
153      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
154      <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
155      <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
156      <property name="jtreg13.src.dir"      location="${test.src.dir}/jtreg"/>
157    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
158    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
159    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
# Line 181  Line 193 
193    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
194    
195    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
196    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
197    <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"/>
198    <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"/>
199    <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"/>
200    <!-- 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"/>
201    <!-- <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"/>
202    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>    <property name="java10.docroot.url" value="https://docs.oracle.com/javase/10/docs"/>
203    <!-- Default jdk doc location (latest stable release seems best) -->    <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
204    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java12.docroot.url" value="https://docs.oracle.com/en/java/javase/12/docs"/>
205      <!-- The location of jdk early access docs (RIP) -->
206      <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
207      <!-- <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/> -->
208      <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
209    <!--   <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> -->
210      <property name="java13.docroot.url" value="https://download.java.net/java/early_access/jdk13/docs"/>
211      <!-- Default jdk doc location (latest stable LTS release seems best) -->
212      <property name="java.docroot.url"   value="${java11.docroot.url}"/>
213    
214    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
215    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 197  Line 217 
217    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
218    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
219    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
220      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
221      <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
222      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
223      <property name="java13.api.url"     value="${java13.docroot.url}/api/"/>
224    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
225    
226    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 229  Line 253 
253    
254      <local name="modules"/>      <local name="modules"/>
255      <condition property="modules">      <condition property="modules">
256        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
257        </condition>
258    
259        <local name="use-doclint"/>
260        <condition property="use-doclint">
261          <not> <equals arg1="@{target}" arg2="7"/> </not>
262      </condition>      </condition>
263    
264      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
# Line 251  Line 280 
280        <include name="*.java"/>        <include name="*.java"/>
281        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
282        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
283          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
284        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
285        <compilerarg line="--patch-module java.base=@{classes}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
286        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
287        <javac-elements/>        <javac-elements/>
288    
# Line 263  Line 293 
293            jvm="${java@{target}}"            jvm="${java@{target}}"
294            fork="true">            fork="true">
295          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
296          <jvmarg line="--patch-module java.base=@{classes}" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
297          <jvmarg line="--add-opens java.base/java.util=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
298          <jvmarg line="--add-opens java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
299          <jvmarg line="--add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
300          <jvmarg line="--add-opens java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
301            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
302          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
303          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
304          <jvmarg line="${vmoptions}" if:set="vmoptions"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
# Line 289  Line 320 
320    </macrodef>    </macrodef>
321    
322    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
323    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
324      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
325        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
326      </patternset>    <macrodef name="defjtregtests">
327    </fileset>      <attribute name="v"/>
328        <sequential>
329    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
330      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
331        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
332        <exclude name="**/SpliteratorCharacteristics.java"/>          </patternset>
333      </patternset>        </fileset>
334    </fileset>      </sequential>
335      </macrodef>
336    
337    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="13"/>
338      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="12"/>
339        <include name="**/*.java"/>    <defjtregtests v="11"/>
340      </patternset>    <defjtregtests v="10"/>
341    </fileset>    <defjtregtests v="9"/>
342      <defjtregtests v="8"/>
343      <defjtregtests v="7"/>
344    
345    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
346    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
347    
348    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
349      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->      <!-- ant -Djtreg11.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
     <attribute name="source" default="7"/>  
350      <attribute name="target"/>      <attribute name="target"/>
351      <attribute name="workdir"/>      <attribute name="workdir"/>
352      <attribute name="classes"/>      <attribute name="classes"/>
353        <attribute name="verbose" default="${jtreg.verbose}"/>
354      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
355        <element name="jtreg-elements" optional="true"/>
356    
357      <sequential>      <sequential>
358    
# Line 326  Line 361 
361    
362      <local name="modules"/>      <local name="modules"/>
363      <condition property="modules">      <condition property="modules">
364        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
365      </condition>      </condition>
366    
367      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
# Line 335  Line 370 
370             workDir="@{workdir}/JTwork">             workDir="@{workdir}/JTwork">
371        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
372        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
373        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
374        <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
375        <arg value="-agentvm"/>        <arg value="-agentvm"/>
376        <arg value="-noreport"/>        <arg value="-noreport"/>
377        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:@{verbose}"/>
378        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
379        <arg value="-automatic"/>        <arg value="-automatic"/>
380        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
381        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
382        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
383          <jtreg-elements/>
384      </jtreg>      </jtreg>
385      </sequential>      </sequential>
386    </macrodef>    </macrodef>
# Line 360  Line 396 
396    
397    <!-- Main targets -->    <!-- Main targets -->
398    
399    <property name="build.main.java.version" value="9"/>    <!-- Default values: may seem strange ... -->
400      <!-- At runtime, target latest LTS, i.e. jdk11 -->
401      <!-- But at build time, target jdk9, for maximal binary portability -->
402      <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
403        o override-methods=summary
404        o {@systemProperty ...}
405        o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
406        o 8202628: javadoc generates bad links in TestModules.java
407        -->
408      <property name="java.runtime.target" value="11"/>
409      <property name="build.main.java" value="${java11}"/>
410    <property name="build.main.javac" value="${javac9}"/>    <property name="build.main.javac" value="${javac9}"/>
411      <property name="build.main.javadoc" value="${javadoc12}"/>
412      <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
413    
414    <target name="dists"    <target name="dists"
415            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
416            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
417              <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
418    
419    <target name="compile"    <target name="compile"
420            depends="configure-compiler"            depends="configure-compiler"
421            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
422    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
423      <local name="destdir"/>      <local name="destdir"/>
424      <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"/>  
425    
426      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
427    
# Line 398  Line 438 
438             fork="true">             fork="true">
439    
440        <include name="**/*.java"/>        <include name="**/*.java"/>
441        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
442        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
443        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
444        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all,-removal"/>
445          <compilerarg line="--doclint-format html5"/>
446          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
447          <compilerarg value="-Xdoclint/package:java.util.*"/>
448        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
449        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
450        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
451    
# Line 442  Line 484 
484  <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->  <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
485      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
486               packagenames="none"               packagenames="none"
487               link="${java9.api.url}"               link="${java.api.url}"
488               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
489               access="${build.javadoc.access}"               access="${build.javadoc.access}"
490               sourcepath="${src.dir}"               sourcepath="${src.dir}"
491               classpath=""               classpath=""
492               executable="${javadoc9}">               source="${build.main.javadoc.source}"
493                 executable="${build.main.javadoc}">
494    <!-- TODO: JDK-8214571 failonerror = "true" -->
495        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
496          <include name="**/*.java"/>          <include name="**/*.java"/>
497        </fileset>        </fileset>
498        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
499        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
500        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
501        <arg value="-Xmodule:java.base"/>        <arg value="-html5"/>
502        <arg value="-tag"/>        <arg value="--patch-module=java.base=${src.dir}"/>
503        <arg value="${javadoc.jls.option}"/>  <!-- old school frames via docs/index.html?overview-summary.html -->
504  <!-- @apiNote currently unused -->  <!-- TODO: - -frames no longer a supported option in jdk13+ -->
505  <!--       <arg value="-tag"/> -->        <arg value="--frames"/>
506  <!--       <arg value="apiNote:a:API Note:"/> -->        <arg value="--override-methods=summary"/>
507        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
508        <arg value="implSpec:a:Implementation Requirements:"/>        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
509        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
510        <arg value="implNote:a:Implementation Note:"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
511  <!-- tags added in jdk9: currently unused -->  <!-- tags added in jdk9: currently unused -->
512  <!--       <arg value="-tag"/> -->  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
513  <!--       <arg value="revised:X"/> -->  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
 <!--       <arg value="-tag"/> -->  
 <!--       <arg value="spec:X"/> -->  
514      </javadoc>      </javadoc>
515    </target>    </target>
516    
# Line 478  Line 520 
520            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
521    
522    
   <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>  
   
   
523    <target name="clean"    <target name="clean"
524            description="Removes all build products">            description="Removes all build products">
   
525      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
526    </target>    </target>
527    
528    
529    <target name="dist-clean"    <target name="dist-clean"
530            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
531      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
532      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
533    </target>    </target>
534    
535    
# Line 532  Line 548 
548            description="Runs tck tests for src/main directly">            description="Runs tck tests for src/main directly">
549    
550      <run-tck-tests      <run-tck-tests
551        target="${build.main.java.version}"        target="${java.runtime.target}"
552        workdir="${build.dir}"        workdir="${build.dir}"
553        classes="${product.jar}"/>        classes="${product.jar}">
554          <javac-elements>
555            <compilerarg value="-Werror"/>
556          </javac-elements>
557        </run-tck-tests>
558    </target>    </target>
559    
560    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 562  Line 582 
582            depends="jar"            depends="jar"
583            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
584      <run-jtreg-tests      <run-jtreg-tests
585         target="${build.main.java.version}"         target="${java.runtime.target}"
586         workdir="${build.dir}"         workdir="${build.dir}"
587         classes="${product.jar}"/>         classes="${product.jar}"/>
588    </target>    </target>
589    
590    <target name="test"    <target name="test"
591            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
592            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
593    
594      <target name="test-version-permutations"
595              depends="test9, test10, test11, test12, test13, test9-11, test9-12, test9-13, clean, test, docs">
596    </target>    </target>
597    
598  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->    <target name="test9">
599        <antcall target="clean"/>
600        <antcall>
601          <param name="java.runtime.target" value="9"/>
602          <param name="build.main.javac" value="${javac9}"/>
603          <param name="build.main.javadoc" value="${javadoc12}"/>
604          <param name="build.main.javadoc.source" value="9"/>
605          <target name="test"/>
606          <target name="docs"/>
607        </antcall>
608      </target>
609    
610  <!--     <antcall target="jtreg"> -->    <target name="test10">
611  <!--       <param name="build.main.java.version" value="8"/> -->      <antcall target="clean"/>
612  <!--       <param name="build.main.javac" value="${javac8}"/> -->      <antcall>
613  <!--     </antcall> -->        <param name="java.runtime.target" value="10"/>
614          <param name="build.main.javac" value="${javac10}"/>
615          <param name="build.main.javadoc" value="${javadoc12}"/>
616          <param name="build.main.javadoc.source" value="10"/>
617          <target name="test"/>
618          <target name="docs"/>
619        </antcall>
620      </target>
621    
622  <!--   </target> -->    <target name="test11">
623        <antcall target="clean"/>
624        <antcall>
625          <param name="java.runtime.target" value="11"/>
626          <param name="build.main.javac" value="${javac11}"/>
627          <param name="build.main.javadoc" value="${javadoc12}"/>
628          <param name="build.main.javadoc.source" value="11"/>
629          <target name="test"/>
630          <target name="docs"/>
631        </antcall>
632      </target>
633    
634  <!--   <target name="test89" -->    <target name="test12">
635  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->      <antcall target="clean"/>
636        <antcall>
637          <param name="java.runtime.target" value="12"/>
638          <param name="build.main.javac" value="${javac12}"/>
639          <param name="build.main.javadoc" value="${javadoc12}"/>
640          <param name="build.main.javadoc.source" value="12"/>
641          <target name="test"/>
642          <target name="docs"/>
643        </antcall>
644      </target>
645    
646  <!--     <antcall target="clean"/> -->    <target name="test13">
647  <!--     <antcall target="test"> -->      <antcall target="clean"/>
648  <!--       <param name="build.main.java.version" value="8"/> -->      <antcall>
649  <!--       <param name="build.main.javac" value="${javac8}"/> -->        <param name="java.runtime.target" value="13"/>
650  <!--     </antcall> -->        <param name="build.main.javac" value="${javac13}"/>
651          <param name="build.main.javadoc" value="${javadoc13}"/>
652          <param name="build.main.javadoc.source" value="13"/>
653          <target name="test"/>
654          <target name="docs"/>
655        </antcall>
656      </target>
657    
658  <!--     <antcall target="clean"/> -->    <target name="test9-11">
659  <!--     <antcall target="test"> -->      <antcall target="clean"/>
660  <!--       <param name="build.main.java.version" value="9"/> -->      <antcall>
661  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="java.runtime.target" value="11"/>
662  <!--     </antcall> -->        <param name="build.main.javac" value="${javac9}"/>
663          <param name="build.main.javadoc" value="${javadoc12}"/>
664          <param name="build.main.javadoc.source" value="9"/>
665          <target name="test"/>
666          <target name="docs"/>
667        </antcall>
668      </target>
669    
670  <!--   </target> -->    <target name="test9-12">
671        <antcall target="clean"/>
672        <antcall>
673          <param name="java.runtime.target" value="12"/>
674          <param name="build.main.javac" value="${javac9}"/>
675          <param name="build.main.javadoc" value="${javadoc12}"/>
676          <param name="build.main.javadoc.source" value="9"/>
677          <target name="test"/>
678          <target name="docs"/>
679        </antcall>
680      </target>
681    
682      <target name="test9-13">
683        <antcall target="clean"/>
684        <antcall>
685          <param name="java.runtime.target" value="13"/>
686          <param name="build.main.javac" value="${javac9}"/>
687          <param name="build.main.javadoc" value="${javadoc13}"/>
688          <param name="build.main.javadoc.source" value="9"/>
689          <target name="test"/>
690          <target name="docs"/>
691        </antcall>
692      </target>
693    
694    
695    <target name="configure-compiler">    <target name="configure-compiler">
696      <fail message="ant version too old">      <fail message="ant version too old">
697        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
698      </fail>      </fail>
699    
700      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 622  Line 712 
712    </target>    </target>
713    
714    
   
   <!-- Various demos and test programs -->  
   
   
   <!-- description="Benchmark from Doug Lea's AQS paper" -->  
   <target name="loops" depends="configure-compiler">  
   
     <mkdir dir="${build.loops.dir}"/>  
   
     <javac srcdir="${loops.src.dir}"  
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
            target="${build.sourcelevel}"  
          encoding="ASCII"  
              fork="true">  
   
       <compilerarg line="${build.args}"/>  
       <classpath refid="loops.classpath"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
   
     </javac>  
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   
   </target>  
   
   
715    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
716            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
717    
718      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
719    
# Line 667  Line 725 
725             includeAntRuntime="false"             includeAntRuntime="false"
726             includeJavaRuntime="false"             includeJavaRuntime="false"
727             encoding="ASCII"             encoding="ASCII"
728             executable="${javac9}"             executable="${build.main.javac}"
729             fork="true">             fork="true">
730    
731        <include name="*.java"/>        <include name="*.java"/>
# Line 675  Line 733 
733        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
734        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
735        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
736      </javac>      </javac>
   
737    </target>    </target>
738    
739    
# Line 703  Line 759 
759             encoding="ASCII"             encoding="ASCII"
760             executable="${javac8}"             executable="${javac8}"
761             fork="true">             fork="true">
   
762        <include name="**/*.java"/>        <include name="**/*.java"/>
763        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
764        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
765        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
766        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
767        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
768      </javac>      </javac>
769    </target>    </target>
770    
# Line 734  Line 788 
788             encoding="ASCII"             encoding="ASCII"
789             executable="${javac8}"             executable="${javac8}"
790             fork="true">             fork="true">
   
791        <include name="**/*.java"/>        <include name="**/*.java"/>
792        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
793        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
794        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
795        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
796        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
797      </javac>      </javac>
798    </target>    </target>
799    
# Line 757  Line 809 
809          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
810        </manifest>        </manifest>
811      </jar>      </jar>
   
812    </target>    </target>
813    
814    
# Line 773  Line 824 
824          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
825          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
826          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
827            <compilerarg value="-Werror"/>
828        </javac-elements>        </javac-elements>
829      </run-tck-tests>      </run-tck-tests>
830    </target>    </target>
# Line 790  Line 842 
842    
843    <target name="4jdk8-test"    <target name="4jdk8-test"
844            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
845            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
846    
847    
848    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 807  Line 858 
858               access="${build.javadoc.access}"               access="${build.javadoc.access}"
859               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
860               classpath=""               classpath=""
861                 source="8"
862               executable="${javadoc8}"               executable="${javadoc8}"
863               failonerror = "true">               failonerror = "true">
864        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 814  Line 866 
866        </fileset>        </fileset>
867        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
868        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
869        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
870        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
871  <!-- @apiNote currently unused -->        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
872  <!--       <arg value="-tag"/> -->  <!-- @apiNote tag currently unused -->
873  <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->  <!--  <arg value="-tag"/> <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
       <arg value="-tag"/>  
       <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>  
       <arg value="-tag"/>  
       <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  
874      </javadoc>      </javadoc>
875    </target>    </target>
876    
# Line 834  Line 882 
882    
883    <target name="4jdk8clean"    <target name="4jdk8clean"
884            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
885      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
886    </target>    </target>
887    
888    
# Line 852  Line 898 
898    </target>    </target>
899    
900    
901      <!-- jsr166 4jdk7 (no longer maintained) -->
902    
903    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
904      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
905    
906      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 882  Line 924 
924        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
925        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
926        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
927      </javac>      </javac>
928    </target>    </target>
929    
930    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
931      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
932    
933      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 913  Line 951 
951        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
952        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
953        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
954      </javac>      </javac>
955    </target>    </target>
956    
957      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
958      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
959        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
960        <manifest>        <manifest>
# Line 929  Line 962 
962          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
963        </manifest>        </manifest>
964      </jar>      </jar>
   
965    </target>    </target>
966    
967      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
968      <run-tck-tests      <run-tck-tests
969        target="7"        target="7"
970        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 954  Line 982 
982          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
983          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
984          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
985            <compilerarg value="-Werror"/>
986        </javac-elements>        </javac-elements>
987      </run-tck-tests>      </run-tck-tests>
988    </target>    </target>
989    
   
990    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
991    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
992    
993      <junit printsummary="true"      <junit printsummary="true"
994             showoutput="true"             showoutput="true"
# Line 983  Line 1010 
1010    
1011        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
1012        </test>        </test>
   
1013      </junit>      </junit>
1014    </target>    </target>
1015    
1016    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
1017      <run-jtreg-tests      <run-jtreg-tests
1018         target="7"         target="7"
1019         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
1020         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
1021    </target>    </target>
1022    
1023      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1024    
1025    <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">  
   
1026      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
1027      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
1028    
# Line 1026  Line 1043 
1043      </javadoc>      </javadoc>
1044    </target>    </target>
1045    
1046      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1047    
1048    <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">  
   
1049      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1050    </target>    </target>
1051    
1052      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1053      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1054    </target>    </target>
1055    
1056      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1057      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1058    </target>    </target>
1059    
1060    
1061    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1062    
1063      <target name="jsr166xcompile" depends="configure-compiler">
1064      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1065    
1066      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1074  Line 1077 
1077             encoding="ASCII"             encoding="ASCII"
1078             executable="${javac7}"             executable="${javac7}"
1079             fork="true">             fork="true">
   
1080        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1081        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1082        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1083        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1084        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1085      </javac>      </javac>
1086    </target>    </target>
1087    
1088      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1089      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1090        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1091        <manifest>        <manifest>
# Line 1096  Line 1093 
1093          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1094        </manifest>        </manifest>
1095      </jar>      </jar>
   
1096    </target>    </target>
1097    
1098      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1099      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1100      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1101    
# Line 1117  Line 1110 
1110               failonerror = "true">               failonerror = "true">
1111        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1112        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1113      </javadoc>      </javadoc>
1114    </target>    </target>
1115    
1116      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1117    
1118    <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">  
   
1119      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1120    </target>    </target>
1121    
1122      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1123      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1124    </target>    </target>
1125    
1126    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1127      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1128    </target>    </target>
1129    
   <!-- jsr166y -->  
1130    
1131      <!-- jsr166y (no longer maintained) -->
1132    
1133    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1134      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1135    
1136      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1174  Line 1153 
1153        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1154        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1155        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1156      </javac>      </javac>
1157    </target>    </target>
1158    
1159      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1160      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1161        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1162        <manifest>        <manifest>
# Line 1190  Line 1164 
1164          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1165        </manifest>        </manifest>
1166      </jar>      </jar>
   
1167    </target>    </target>
1168    
1169      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1170      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1171      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1172    
# Line 1211  Line 1181 
1181               failonerror = "true">               failonerror = "true">
1182        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1183        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1184      </javadoc>      </javadoc>
1185    </target>    </target>
1186    
1187      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1188    
1189    <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">  
   
1190      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1191    </target>    </target>
1192    
1193      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1194      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1195    </target>    </target>
1196    
1197    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1198      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1199    </target>    </target>
1200    
1201    
1202    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1203    
1204      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1205      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1206    
1207      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1269  Line 1224 
1224        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1225        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1226        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1227      </javac>      </javac>
1228    </target>    </target>
1229    
1230      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1231      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1232        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1233        <manifest>        <manifest>
# Line 1285  Line 1235 
1235          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1236        </manifest>        </manifest>
1237      </jar>      </jar>
   
1238    </target>    </target>
1239    
1240      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1241      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1242      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1243    
# Line 1305  Line 1251 
1251               executable="${javadoc7}">               executable="${javadoc7}">
1252        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1253        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1254      </javadoc>      </javadoc>
1255    </target>    </target>
1256    
1257      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1258    
1259    <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">  
   
1260      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1261    </target>    </target>
1262    
1263      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1264      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1265    </target>    </target>
1266    
1267    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1268      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1269    </target>    </target>
1270    
1271    <!-- jsr166e -->  
1272      <!-- jsr166e (no longer maintained) -->
1273    
1274    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1275    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1276    
1277    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1278      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1279    
1280      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1362  Line 1295 
1295        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1296        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1297        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1298      </javac>      </javac>
1299    </target>    </target>
1300    
   <!-- jsr166e: find doclint errors -->  
1301    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1302      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1303    
1304      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1390  Line 1320 
1320        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1321        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1322        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1323      </javac>      </javac>
1324    </target>    </target>
1325    
1326      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1327      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1328        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1329        <manifest>        <manifest>
# Line 1406  Line 1331 
1331          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1332        </manifest>        </manifest>
1333      </jar>      </jar>
   
1334    </target>    </target>
1335    
1336      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1337      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1338      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1339    
# Line 1426  Line 1347 
1347               failonerror = "true">               failonerror = "true">
1348        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1349        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1350      </javadoc>      </javadoc>
1351    </target>    </target>
1352    
1353      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1354      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1355      <run-tck-tests      <run-tck-tests
1356        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1357        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1443  Line 1359 
1359        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1360    </target>    </target>
1361    
1362    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1363    
1364  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1365  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1465  Line 1380 
1380      </antcall>      </antcall>
1381    </target>    </target>
1382    
1383      <target name="jsr166e-test" depends="jsr166e-tck"/>
1384    
1385    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
1386    
1387    <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">  
1388      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1389    </target>    </target>
1390    
   
1391    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1392            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1393      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1394    </target>    </target>
1395    
1396    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1397      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1398    </target>    </target>
1399    
1400    
1401  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1402    
1403    <target name="lint">  <!--   <target name="lint"> -->
1404      <antcall target="dists">  <!--     <antcall target="dists"> -->
1405        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1406      </antcall>  <!--     </antcall> -->
1407    </target>  <!--   </target> -->
1408    
1409  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1410    <target name="lint-private">    <target name="doclint-private">
1411      <antcall target="dist">      <antcall target="dist">
1412        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1413      </antcall>      </antcall>
1414    </target>    </target>
1415    
1416    
1417    <!-- ==============================================================
1418      Experimental errorprone support
1419      https://errorprone.info
1420      https://errorprone.info/docs/installation
1421      https://github.com/google/error-prone/issues/1143
1422    =================================================================== -->
1423      <path id="errorprone.processorpath.path">
1424        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1425        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1426        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1427        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1428      </path>
1429      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1430      <property name="errorprone.jsr166.user.flags" value=""/>
1431      <property name="errorprone.jsr166.flags"
1432                value="-Xep:HashtableContains:OFF
1433                       -Xep:JdkObsolete:OFF
1434                       -Xep:MissingOverride:OFF
1435                       -Xep:MissingFail:OFF
1436                       -Xep:ThreadPriorityCheck:OFF
1437                       -Xep:MixedArrayDimensions:ERROR
1438                       -Xep:RemoveUnusedImports:ERROR
1439                       -Xep:EmptyIf:ERROR
1440                       -Xep:MultipleTopLevelClasses:ERROR
1441                       -Xep:ClassName:ERROR
1442                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1443                       -Xep:RedundantThrows:ERROR
1444                       -Xep:IdentityBinaryExpression:WARN
1445                       -Xep:ConstructorInvokesOverridable:WARN
1446                       -Xep:MethodCanBeStatic:WARN
1447                       ${errorprone.jsr166.user.flags}"/>
1448      <!-- -Xep:WildcardImport:ERROR -->
1449      <property name="errorprone.jsr166.test.flags"
1450                value="-Xep:StringSplitter:OFF
1451                       -Xep:BoxedPrimitiveConstructor:OFF
1452                       -Xep:ModifyingCollectionWithItself:OFF"/>
1453      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1454      <target name="errorprone"
1455              depends="clean, configure-compiler"
1456              description="Run errorprone over jsr166 source code (experimental)">
1457    
1458        <local name="destdir"/>
1459        <property name="destdir" value="${build.classes.dir}/java.base"/>
1460        <mkdir dir="${destdir}"/>
1461    
1462        <javac srcdir="${src.dir}"
1463               destdir="${destdir}"
1464               debug="${build.debug}"
1465               debuglevel="${build.debuglevel}"
1466               deprecation="${build.deprecation}"
1467               classpath=""
1468               includeAntRuntime="false"
1469               includeJavaRuntime="false"
1470               encoding="ASCII"
1471               executable="${build.main.javac}"
1472               fork="true">
1473    
1474          <include name="**/*.java"/>
1475          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1476          <compilerarg value="-J--illegal-access=permit"/>
1477          <compilerarg value="-XDcompilePolicy=simple"/>
1478          <compilerarg value="-processorpath"/>
1479          <compilerarg pathref="errorprone.processorpath.path"/>
1480          <compilerarg value="-Xplugin:ErrorProne
1481                              ${errorprone.jsr166.flags}"/>
1482          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1483          <compilerarg value="-Xprefer:source"/>
1484          <compilerarg value="-XDignore.symbol.file=true"/>
1485          <compilerarg value="-Xlint:all"/>
1486          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1487          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1488          <compilerarg line="${build.args}"/>
1489        </javac>
1490    
1491        <jar destfile="${product.jar}">
1492          <fileset dir="${destdir}"/>
1493        </jar>
1494    
1495        <run-tck-tests
1496          target="${java.runtime.target}"
1497          workdir="${build.dir}"
1498          classes="${product.jar}">
1499          <javac-elements>
1500            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1501            <compilerarg value="-J--illegal-access=permit"/>
1502            <compilerarg value="-XDcompilePolicy=simple"/>
1503            <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1504            <compilerarg value="-Xplugin:ErrorProne
1505                                ${errorprone.jsr166.flags}
1506                                ${errorprone.jsr166.test.flags}"/>
1507            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1508          </javac-elements>
1509        </run-tck-tests>
1510      </target>
1511    
1512      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1513      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1514      <target name="errorprone-jtreg"
1515              depends="jar"
1516              description="Run errorprone over jtreg tests (experimental)">
1517    
1518        <run-jtreg-tests
1519           target="${java.runtime.target}"
1520           workdir="${build.dir}"
1521           classes="${product.jar}"
1522           verbose="all">
1523          <jtreg-elements>
1524            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1525            <arg value="-javacoption:-processorpath"/>
1526            <arg value="-javacoption:${errorprone.processorpath}"/>
1527            <arg value="-javacoption:-Xplugin:ErrorProne
1528                                ${errorprone.jsr166.flags}
1529                                ${errorprone.jsr166.test.flags}
1530                                -Xep:MultipleTopLevelClasses:WARN
1531                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1532          </jtreg-elements>
1533        </run-jtreg-tests>
1534      </target>
1535    
1536    
1537    <!-- ==============================================================
1538      Running guava tests against jsr166 code
1539    =================================================================== -->
1540    
1541    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1542    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1543    <!-- <property name="guava.version" value="21.0"/> -->
1544    
1545    <!-- HOWTO debug print a path id -->
1546    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1547    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1548    
1549    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1550    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1551    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1552    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1553    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1554    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1555    
1556    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1557    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1558    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1559    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1560    
1561    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1562    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1563    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1564    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1565    
1566    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1567    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1568    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1569    
1570      <target name="init-ivy">
1571        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1572             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1573        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1574                 classpath="${build.dir}/ivy.jar"/>
1575      </target>
1576    
1577      <target name="guava-tests" depends="jar, init-ivy"
1578              description="Guava tests run against jsr166 collections">
1579        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1580        <mkdir dir="${guava.dir}"/>
1581        <ivy:retrieve pathid="guava.testlib.classpath"
1582          type="jar,bundle" inline="true" conf="default,master"
1583          pattern="${guava.dir}/[artifact].[ext]"
1584          organisation="com.google.guava" module="guava-testlib"/>
1585        <property name="guava.version" value="21.0"/>
1586        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1587             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1588        <junit printsummary="true" showoutput="true" haltonfailure="true"
1589               jvm="${build.main.java}" fork="true">
1590          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1591          <formatter type="brief"/>
1592          <classpath>
1593            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1594            <path refid="guava.testlib.classpath"/>
1595          </classpath>
1596    
1597          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1598          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1599        </junit>
1600      </target>
1601    
1602  </project>  </project>

Legend:
Removed from v.1.227  
changed lines
  Added in v.1.298

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