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

Diff of /jsr166/build.xml

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

revision 1.221 by jsr166, Sat Oct 8 21:39:24 2016 UTC revision 1.286 by jsr166, Wed Nov 21 21:05:59 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://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 252  Line 275 
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 line="--patch-module 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 264  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 line="--patch-module 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 -->          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
299          <jvmarg line="${vmoptions}" if:set="vmoptions"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
# Line 286  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}"/>
327        <exclude name="**/SpliteratorCharacteristics.java"/>          </patternset>
328        <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->        </fileset>
329        <exclude name="**/GCDuringIteration.java"/>      </sequential>
330      </patternset>    </macrodef>
   </fileset>  
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 325  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="-vmoptions:--patch-module 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 359  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 397  Line 426 
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 434  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}" -->  <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
468  <!--  TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->  <!-- 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}"               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        <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}"/>        <arg value="--frames"/>
490  <!-- @apiNote currently unused -->        <arg value="--override-methods=summary"/>
491  <!--       <arg value="-tag"/> -->        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
492  <!--       <arg value="apiNote:a:API Note:"/> -->        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
493        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
494        <arg value="implSpec:a:Implementation Requirements:"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
       <arg value="-tag"/>  
       <arg value="implNote:a:Implementation Note:"/>  
495  <!-- tags added in jdk9: currently unused -->  <!-- tags added in jdk9: currently unused -->
496  <!--       <arg value="-tag"/> -->  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
497  <!--       <arg value="revised:X"/> -->  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
 <!--       <arg value="-tag"/> -->  
 <!--       <arg value="spec:X"/> -->  
498      </javadoc>      </javadoc>
499    </target>    </target>
500    
# Line 474  Line 504 
504            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
505    
506    
   <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>  
   
   
507    <target name="clean"    <target name="clean"
508            description="Removes all build products">            description="Removes all build products">
   
509      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
510    </target>    </target>
511    
512    
513    <target name="dist-clean"    <target name="dist-clean"
514            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
515      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
516      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
517    </target>    </target>
518    
519    
# Line 530  Line 534 
534      <run-tck-tests      <run-tck-tests
535        target="${build.main.java.version}"        target="${build.main.java.version}"
536        workdir="${build.dir}"        workdir="${build.dir}"
537        classes="${product.jar}"/>        classes="${product.jar}">
538          <javac-elements>
539            <compilerarg value="-Werror"/>
540          </javac-elements>
541        </run-tck-tests>
542    </target>    </target>
543    
544    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 565  Line 573 
573    
574    <target name="test"    <target name="test"
575            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
576            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"> -->  
577    
578  <!--     <antcall target="jtreg"> -->    <target name="test-version-permutations"
579  <!--       <param name="build.main.java.version" value="8"/> -->            depends="test9, test10, test11, test12, test9-11, test9-12, clean, test, docs">
580  <!--       <param name="build.main.javac" value="${javac8}"/> -->    </target>
 <!--     </antcall> -->  
581    
582  <!--   </target> -->    <target name="test9">
583        <antcall target="clean"/>
584        <antcall>
585          <param name="build.main.java.version" value="9"/>
586          <param name="build.main.java" value="${java9}"/>
587          <param name="build.main.javac" value="${javac9}"/>
588          <target name="test"/>
589        </antcall>
590      </target>
591    
592  <!--   <target name="test89" -->    <target name="test10">
593  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->      <antcall target="clean"/>
594        <antcall>
595          <param name="build.main.java.version" value="10"/>
596          <param name="build.main.java" value="${java10}"/>
597          <param name="build.main.javac" value="${javac10}"/>
598          <param name="build.main.javadoc" value="${javadoc10}"/>
599          <target name="test"/>
600          <target name="docs"/>
601        </antcall>
602      </target>
603    
604  <!--     <antcall target="clean"/> -->    <target name="test11">
605  <!--     <antcall target="test"> -->      <antcall target="clean"/>
606  <!--       <param name="build.main.java.version" value="8"/> -->      <antcall>
607  <!--       <param name="build.main.javac" value="${javac8}"/> -->        <param name="build.main.java.version" value="11"/>
608  <!--     </antcall> -->        <param name="build.main.java" value="${java11}"/>
609          <param name="build.main.javac" value="${javac11}"/>
610          <param name="build.main.javadoc" value="${javadoc11}"/>
611          <target name="test"/>
612          <target name="docs"/>
613        </antcall>
614      </target>
615    
616  <!--     <antcall target="clean"/> -->    <target name="test12">
617  <!--     <antcall target="test"> -->      <antcall target="clean"/>
618  <!--       <param name="build.main.java.version" value="9"/> -->      <antcall>
619  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="build.main.java.version" value="12"/>
620  <!--     </antcall> -->        <param name="build.main.java" value="${java12}"/>
621          <param name="build.main.javac" value="${javac12}"/>
622          <param name="build.main.javadoc" value="${javadoc12}"/>
623          <target name="test"/>
624          <target name="docs"/>
625        </antcall>
626      </target>
627    
628  <!--   </target> -->    <target name="test9-11">
629        <antcall target="clean"/>
630        <antcall>
631          <param name="build.main.java.version" value="11"/>
632          <param name="build.main.java" value="${java11}"/>
633          <param name="build.main.javac" value="${javac9}"/>
634          <param name="build.main.javadoc" value="${javadoc11}"/>
635          <target name="test"/>
636          <target name="docs"/>
637        </antcall>
638      </target>
639    
640      <target name="test9-12">
641        <antcall target="clean"/>
642        <antcall>
643          <param name="build.main.java.version" value="12"/>
644          <param name="build.main.java" value="${java12}"/>
645          <param name="build.main.javac" value="${javac9}"/>
646          <param name="build.main.javadoc" value="${javadoc12}"/>
647          <target name="test"/>
648          <target name="docs"/>
649        </antcall>
650      </target>
651    
652    
653    <target name="configure-compiler">    <target name="configure-compiler">
654      <fail message="ant version too old">      <fail message="ant version too old">
655        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
656      </fail>      </fail>
657    
658      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 618  Line 670 
670    </target>    </target>
671    
672    
   
   <!-- 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>  
   
   
673    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
674            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
675    
676      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
677    
# Line 663  Line 683 
683             includeAntRuntime="false"             includeAntRuntime="false"
684             includeJavaRuntime="false"             includeJavaRuntime="false"
685             encoding="ASCII"             encoding="ASCII"
686             executable="${javac9}"             executable="${build.main.javac}"
687             fork="true">             fork="true">
688    
689        <include name="*.java"/>        <include name="*.java"/>
# Line 671  Line 691 
691        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
692        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
693        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
694      </javac>      </javac>
   
695    </target>    </target>
696    
697    
# Line 699  Line 717 
717             encoding="ASCII"             encoding="ASCII"
718             executable="${javac8}"             executable="${javac8}"
719             fork="true">             fork="true">
   
720        <include name="**/*.java"/>        <include name="**/*.java"/>
721        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
722        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
723        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
724        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
725        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
726      </javac>      </javac>
727    </target>    </target>
728    
# Line 730  Line 746 
746             encoding="ASCII"             encoding="ASCII"
747             executable="${javac8}"             executable="${javac8}"
748             fork="true">             fork="true">
   
749        <include name="**/*.java"/>        <include name="**/*.java"/>
750        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
751        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
752        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
753        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
754        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
755      </javac>      </javac>
756    </target>    </target>
757    
# Line 753  Line 767 
767          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
768        </manifest>        </manifest>
769      </jar>      </jar>
   
770    </target>    </target>
771    
772    
# Line 769  Line 782 
782          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
783          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
784          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
785            <compilerarg value="-Werror"/>
786        </javac-elements>        </javac-elements>
787      </run-tck-tests>      </run-tck-tests>
788    </target>    </target>
# Line 786  Line 800 
800    
801    <target name="4jdk8-test"    <target name="4jdk8-test"
802            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
803            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
804    
805    
806    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 803  Line 816 
816               access="${build.javadoc.access}"               access="${build.javadoc.access}"
817               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
818               classpath=""               classpath=""
819                 source="8"
820               executable="${javadoc8}"               executable="${javadoc8}"
821               failonerror = "true">               failonerror = "true">
822        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 810  Line 824 
824        </fileset>        </fileset>
825        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
826        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
827        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
828        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
829  <!-- @apiNote currently unused -->        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
830  <!--       <arg value="-tag"/> -->  <!-- @apiNote tag currently unused -->
831  <!--       <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;"/>  
832      </javadoc>      </javadoc>
833    </target>    </target>
834    
# Line 830  Line 840 
840    
841    <target name="4jdk8clean"    <target name="4jdk8clean"
842            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
843      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
844    </target>    </target>
845    
846    
# Line 848  Line 856 
856    </target>    </target>
857    
858    
859      <!-- jsr166 4jdk7 (no longer maintained) -->
860    
861    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
862      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
863    
864      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 878  Line 882 
882        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
883        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
884        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
885      </javac>      </javac>
886    </target>    </target>
887    
888    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
889      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
890    
891      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 909  Line 909 
909        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
910        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
911        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
912      </javac>      </javac>
913    </target>    </target>
914    
915      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
916      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
917        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
918        <manifest>        <manifest>
# Line 925  Line 920 
920          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
921        </manifest>        </manifest>
922      </jar>      </jar>
   
923    </target>    </target>
924    
925      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
926      <run-tck-tests      <run-tck-tests
927        target="7"        target="7"
928        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 950  Line 940 
940          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
941          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
942          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
943            <compilerarg value="-Werror"/>
944        </javac-elements>        </javac-elements>
945      </run-tck-tests>      </run-tck-tests>
946    </target>    </target>
947    
   
948    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
949    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
950    
951      <junit printsummary="true"      <junit printsummary="true"
952             showoutput="true"             showoutput="true"
# Line 979  Line 968 
968    
969        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
970        </test>        </test>
   
971      </junit>      </junit>
972    </target>    </target>
973    
974    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
975      <run-jtreg-tests      <run-jtreg-tests
976         target="7"         target="7"
977         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
978         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
979    </target>    </target>
980    
981      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
982    
983    <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">  
   
984      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
985      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
986    
# Line 1022  Line 1001 
1001      </javadoc>      </javadoc>
1002    </target>    </target>
1003    
1004      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1005    
1006    <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">  
   
1007      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1008    </target>    </target>
1009    
1010      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1011      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1012    </target>    </target>
1013    
1014      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1015      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1016    </target>    </target>
1017    
1018    
1019    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1020    
1021      <target name="jsr166xcompile" depends="configure-compiler">
1022      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1023    
1024      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1070  Line 1035 
1035             encoding="ASCII"             encoding="ASCII"
1036             executable="${javac7}"             executable="${javac7}"
1037             fork="true">             fork="true">
   
1038        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1039        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1040        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1041        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1042        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1043      </javac>      </javac>
1044    </target>    </target>
1045    
1046      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1047      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1048        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1049        <manifest>        <manifest>
# Line 1092  Line 1051 
1051          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1052        </manifest>        </manifest>
1053      </jar>      </jar>
   
1054    </target>    </target>
1055    
1056      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1057      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1058      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1059    
# Line 1113  Line 1068 
1068               failonerror = "true">               failonerror = "true">
1069        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1070        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1071      </javadoc>      </javadoc>
1072    </target>    </target>
1073    
1074      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1075    
1076    <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">  
   
1077      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1078    </target>    </target>
1079    
1080      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1081      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1082    </target>    </target>
1083    
1084    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1085      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1086    </target>    </target>
1087    
   <!-- jsr166y -->  
1088    
1089      <!-- jsr166y (no longer maintained) -->
1090    
1091    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1092      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1093    
1094      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1170  Line 1111 
1111        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1112        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1113        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1114      </javac>      </javac>
1115    </target>    </target>
1116    
1117      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1118      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1119        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1120        <manifest>        <manifest>
# Line 1186  Line 1122 
1122          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1123        </manifest>        </manifest>
1124      </jar>      </jar>
   
1125    </target>    </target>
1126    
1127      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1128      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1129      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1130    
# Line 1207  Line 1139 
1139               failonerror = "true">               failonerror = "true">
1140        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1141        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1142      </javadoc>      </javadoc>
1143    </target>    </target>
1144    
1145      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1146    
1147    <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">  
   
1148      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1149    </target>    </target>
1150    
1151      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1152      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1153    </target>    </target>
1154    
1155    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1156      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1157    </target>    </target>
1158    
1159    
1160    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1161    
1162      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1163      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1164    
1165      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1265  Line 1182 
1182        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1183        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1184        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1185      </javac>      </javac>
1186    </target>    </target>
1187    
1188      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1189      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1190        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1191        <manifest>        <manifest>
# Line 1281  Line 1193 
1193          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1194        </manifest>        </manifest>
1195      </jar>      </jar>
   
1196    </target>    </target>
1197    
1198      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1199      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1200      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1201    
# Line 1301  Line 1209 
1209               executable="${javadoc7}">               executable="${javadoc7}">
1210        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1211        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1212      </javadoc>      </javadoc>
1213    </target>    </target>
1214    
1215      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1216    
1217    <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">  
   
1218      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1219    </target>    </target>
1220    
1221      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1222      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1223    </target>    </target>
1224    
1225    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1226      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1227    </target>    </target>
1228    
1229    <!-- jsr166e -->  
1230      <!-- jsr166e (no longer maintained) -->
1231    
1232    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1233    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1234    
1235    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1236      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1237    
1238      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1358  Line 1253 
1253        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1254        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1255        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1256      </javac>      </javac>
1257    </target>    </target>
1258    
   <!-- jsr166e: find doclint errors -->  
1259    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1260      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1261    
1262      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1386  Line 1278 
1278        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1279        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1280        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1281      </javac>      </javac>
1282    </target>    </target>
1283    
1284      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1285      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1286        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1287        <manifest>        <manifest>
# Line 1402  Line 1289 
1289          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1290        </manifest>        </manifest>
1291      </jar>      </jar>
   
1292    </target>    </target>
1293    
1294      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1295      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1296      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1297    
# Line 1422  Line 1305 
1305               failonerror = "true">               failonerror = "true">
1306        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1307        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1308      </javadoc>      </javadoc>
1309    </target>    </target>
1310    
1311      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1312      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1313      <run-tck-tests      <run-tck-tests
1314        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1315        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1439  Line 1317 
1317        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1318    </target>    </target>
1319    
1320    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1321    
1322  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1323  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1461  Line 1338 
1338      </antcall>      </antcall>
1339    </target>    </target>
1340    
1341      <target name="jsr166e-test" depends="jsr166e-tck"/>
1342    
1343    <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"/>  
   
1344    
1345    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1346      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1347    </target>    </target>
1348    
   
1349    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1350            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1351      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1352    </target>    </target>
1353    
1354    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1355      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1356    </target>    </target>
1357    
1358    
1359  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1360    
1361    <target name="lint">  <!--   <target name="lint"> -->
1362      <antcall target="dists">  <!--     <antcall target="dists"> -->
1363        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1364      </antcall>  <!--     </antcall> -->
1365    </target>  <!--   </target> -->
1366    
1367  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1368    <target name="lint-private">    <target name="doclint-private">
1369      <antcall target="dist">      <antcall target="dist">
1370        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1371      </antcall>      </antcall>
1372    </target>    </target>
1373    
1374    
1375    <!-- ==============================================================
1376      Experimental errorprone support - https://errorprone.info
1377    =================================================================== -->
1378      <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.3.1.jar"/>
1379      <property name="errorprone.processorpath" value="${errorprone.jar}"/>
1380      <property name="errorprone.jsr166.user.flags" value=""/>
1381      <property name="errorprone.jsr166.flags"
1382                value="-Xep:HashtableContains:OFF
1383                       -Xep:JdkObsolete:OFF
1384                       -Xep:MissingOverride:OFF
1385                       -Xep:MissingFail:OFF
1386                       -Xep:MixedArrayDimensions:ERROR
1387                       -Xep:RemoveUnusedImports:ERROR
1388                       -Xep:EmptyIf:ERROR
1389                       -Xep:MultipleTopLevelClasses:ERROR
1390                       -Xep:ClassName:ERROR
1391                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1392                       -Xep:RedundantThrows:ERROR
1393                       -Xep:IdentityBinaryExpression:WARN
1394                       -Xep:MethodCanBeStatic:WARN
1395                       ${errorprone.jsr166.user.flags}"/>
1396      <!-- -Xep:WildcardImport:ERROR -->
1397      <property name="errorprone.jsr166.test.flags"
1398                value="-Xep:StringSplitter:OFF
1399                       -Xep:BoxedPrimitiveConstructor:OFF
1400                       -Xep:ModifyingCollectionWithItself:OFF"/>
1401      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1402      <target name="errorprone"
1403              depends="clean, configure-compiler"
1404              description="Run errorprone over jsr166 source code (experimental)">
1405    
1406        <local name="destdir"/>
1407        <property name="destdir" value="${build.classes.dir}/java.base"/>
1408        <mkdir dir="${destdir}"/>
1409    
1410        <javac srcdir="${src.dir}"
1411               destdir="${destdir}"
1412               debug="${build.debug}"
1413               debuglevel="${build.debuglevel}"
1414               deprecation="${build.deprecation}"
1415               classpath=""
1416               includeAntRuntime="false"
1417               includeJavaRuntime="false"
1418               encoding="ASCII"
1419               executable="${build.main.javac}"
1420               fork="true">
1421    
1422          <include name="**/*.java"/>
1423          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1424          <compilerarg value="-J--illegal-access=permit"/>
1425          <compilerarg value="-XDcompilePolicy=simple"/>
1426          <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1427          <compilerarg value="-Xplugin:ErrorProne
1428                              ${errorprone.jsr166.flags}"/>
1429          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1430          <compilerarg value="-Xprefer:source"/>
1431          <compilerarg value="-XDignore.symbol.file=true"/>
1432          <compilerarg value="-Xlint:all"/>
1433          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1434          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1435          <compilerarg line="${build.args}"/>
1436        </javac>
1437    
1438        <jar destfile="${product.jar}">
1439          <fileset dir="${destdir}"/>
1440        </jar>
1441    
1442        <run-tck-tests
1443          target="${build.main.java.version}"
1444          workdir="${build.dir}"
1445          classes="${product.jar}">
1446          <javac-elements>
1447            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1448            <compilerarg value="-J--illegal-access=permit"/>
1449            <compilerarg value="-XDcompilePolicy=simple"/>
1450            <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1451            <compilerarg value="-Xplugin:ErrorProne
1452                                ${errorprone.jsr166.flags}
1453                                ${errorprone.jsr166.test.flags}"/>
1454            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1455          </javac-elements>
1456        </run-tck-tests>
1457      </target>
1458    
1459      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1460      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1461      <target name="errorprone-jtreg"
1462              depends="jar"
1463              description="Run errorprone over jtreg tests (experimental)">
1464    
1465        <run-jtreg-tests
1466           target="${build.main.java.version}"
1467           workdir="${build.dir}"
1468           classes="${product.jar}"
1469           verbose="all">
1470          <jtreg-elements>
1471            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1472            <arg value="-javacoption:-processorpath"/>
1473            <arg value="-javacoption:${errorprone.processorpath}"/>
1474            <arg value="-javacoption:-Xplugin:ErrorProne
1475                                ${errorprone.jsr166.flags}
1476                                ${errorprone.jsr166.test.flags}
1477                                -Xep:MultipleTopLevelClasses:WARN
1478                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1479          </jtreg-elements>
1480        </run-jtreg-tests>
1481      </target>
1482    
1483    
1484    <!-- ==============================================================
1485      Running guava tests against jsr166 code
1486    =================================================================== -->
1487    
1488    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1489    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1490    <!-- <property name="guava.version" value="21.0"/> -->
1491    
1492    <!-- HOWTO debug print a path id -->
1493    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1494    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1495    
1496    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1497    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1498    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1499    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1500    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1501    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1502    
1503    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1504    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1505    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1506    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1507    
1508    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1509    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1510    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1511    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1512    
1513    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1514    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1515    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1516    
1517      <target name="init-ivy">
1518        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1519             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1520        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1521                 classpath="${build.dir}/ivy.jar"/>
1522      </target>
1523    
1524      <target name="guava-tests" depends="jar, init-ivy"
1525              description="Guava tests run against jsr166 collections">
1526        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1527        <mkdir dir="${guava.dir}"/>
1528        <ivy:retrieve pathid="guava.testlib.classpath"
1529          type="jar,bundle" inline="true" conf="default,master"
1530          pattern="${guava.dir}/[artifact].[ext]"
1531          organisation="com.google.guava" module="guava-testlib"/>
1532        <property name="guava.version" value="21.0"/>
1533        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1534             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1535        <junit printsummary="true" showoutput="true" haltonfailure="true"
1536               jvm="${build.main.java}" fork="true">
1537          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1538          <formatter type="brief"/>
1539          <classpath>
1540            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1541            <path refid="guava.testlib.classpath"/>
1542          </classpath>
1543    
1544          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1545          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1546        </junit>
1547      </target>
1548    
1549  </project>  </project>

Legend:
Removed from v.1.221  
changed lines
  Added in v.1.286

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