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

Diff of /jsr166/build.xml

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

revision 1.213 by jsr166, Sat Jun 4 23:49:29 2016 UTC revision 1.264 by jsr166, Wed Jan 24 01:11:10 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" xmlns:unless="ant:unless"
3      xmlns:ivy="antlib:org.apache.ivy.ant">
4    
5    <description>    <description>
6  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 17  Line 18 
18    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
19    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
20    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
   $HOME/jdk/jdk7  
21    $HOME/jdk/jdk8    $HOME/jdk/jdk8
22    $HOME/jdk/jdk9    $HOME/jdk/jdk9
23      $HOME/jdk/jdk10
24      $HOME/jdk/jdk11
25    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  
26    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
27    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
28      $HOME/jdk/src/jdk10
29      $HOME/jdk/src/jdk11
30    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
31    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
32    
33    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
34    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
35    for $N in 6 7 8 9 ...    for $N in 8 9 10 ...
36    
37    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.  
38  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
39    </description>    </description>
40    
# Line 63  Line 63 
63    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
64    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
65    <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"/>  
66    
67    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
# Line 134  Line 133 
133    <defjdklocations v="7"/>    <defjdklocations v="7"/>
134    <defjdklocations v="8"/>    <defjdklocations v="8"/>
135    <defjdklocations v="9"/>    <defjdklocations v="9"/>
136      <defjdklocations v="10"/>
137      <defjdklocations v="11"/>
138    
139    <!-- Source locations -->    <!-- Source locations -->
140    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 143  Line 144 
144    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
145    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
146    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
147      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
148      <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
149    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
150    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
151    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
# Line 182  Line 185 
185    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
186    
187    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
188    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
189    <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"/>
190    <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"/>
191    <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"/>
192    <!-- 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"/>
193    <!-- <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"/>
194    <property name="java9.docroot.url"      value="http://http://download.java.net/java/jdk9/docs"/>    <!-- The location of jdk9 early access docs (RIP) -->
195      <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
196    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
197    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/>
198      <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/>
199      <property name="java.docroot.url"   value="${java9.docroot.url}"/>
200    
201    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
202    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 198  Line 204 
204    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
205    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
206    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
207      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
208      <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
209    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
210    
211    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 233  Line 241 
241        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
242      </condition>      </condition>
243    
244        <local name="use-doclint"/>
245        <condition property="use-doclint">
246          <not> <equals arg1="@{target}" arg2="7"/> </not>
247        </condition>
248    
249      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
250    
251      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 245  Line 258 
258             classpath="${junit.jar}"             classpath="${junit.jar}"
259             includeAntRuntime="false"             includeAntRuntime="false"
260             includeJavaRuntime="false"             includeJavaRuntime="false"
261               encoding="ASCII"
262             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
263             fork="true">             fork="true">
264    
265        <include name="*.java"/>        <include name="*.java"/>
266        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
267        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
268          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
269        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
270        <compilerarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
271        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
272        <javac-elements/>        <javac-elements/>
273    
# Line 263  Line 278 
278            jvm="${java@{target}}"            jvm="${java@{target}}"
279            fork="true">            fork="true">
280          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
281          <jvmarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
282            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
283            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
284            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
285            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
286            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
287          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
288            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
289            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
290    
291          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
292          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
293            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
294            <propertyref prefix="jsr166."/>            <propertyref prefix="jsr166."/>
# Line 283  Line 305 
305    </macrodef>    </macrodef>
306    
307    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
308      <fileset dir="${jtreg11.src.dir}">
309        <patternset id="jdk11.jtreg.tests">
310          <include name="**/*.java"/>
311        </patternset>
312      </fileset>
313    
314      <fileset dir="${jtreg10.src.dir}">
315        <patternset id="jdk10.jtreg.tests">
316          <include name="**/*.java"/>
317        </patternset>
318      </fileset>
319    
320    <fileset dir="${jtreg9.src.dir}">    <fileset dir="${jtreg9.src.dir}">
321      <patternset id="jdk9.jtreg.tests">      <patternset id="jdk9.jtreg.tests">
322        <include name="**/*.java"/>        <include name="**/*.java"/>
# Line 292  Line 326 
326    <fileset dir="${jtreg8.src.dir}">    <fileset dir="${jtreg8.src.dir}">
327      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
328        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
329      </patternset>      </patternset>
330    </fileset>    </fileset>
331    
# Line 309  Line 340 
340    
341    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
342      <!-- 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"/>  
343      <attribute name="target"/>      <attribute name="target"/>
344      <attribute name="workdir"/>      <attribute name="workdir"/>
345      <attribute name="classes"/>      <attribute name="classes"/>
346        <attribute name="verbose" default="${jtreg.verbose}"/>
347      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
348        <element name="jtreg-elements" optional="true"/>
349    
350      <sequential>      <sequential>
351    
# Line 326  Line 358 
358      </condition>      </condition>
359    
360      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
361      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
362             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
363             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
364        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
365        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
366        <arg value="-vmoption:-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
367          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
368        <arg value="-agentvm"/>        <arg value="-agentvm"/>
369        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-noreport"/>
370          <arg value="-verbose:@{verbose}"/>
371        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
372        <arg value="-automatic"/>        <arg value="-automatic"/>
373        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
374        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
375        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
376          <jtreg-elements/>
377      </jtreg>      </jtreg>
378      </sequential>      </sequential>
379    </macrodef>    </macrodef>
# Line 357  Line 390 
390    <!-- Main targets -->    <!-- Main targets -->
391    
392    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="9"/>
393    <property name="build.main.javac" value="${javac9}"/>    <!-- Workaround "no nested properties in ant" -->
394      <macrodef name="define-build-main-properties">
395        <attribute name="v"/>
396        <sequential>
397          <property name="build.main.java"    value="${java@{v}}"/>
398          <property name="build.main.javac"   value="${javac@{v}}"/>
399          <property name="build.main.javadoc" value="${javadoc@{v}}"/>
400        </sequential>
401      </macrodef>
402      <define-build-main-properties v="${build.main.java.version}"/>
403    
404    <target name="dists"    <target name="dists"
405            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
406            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
407              <!--
408                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
409              -->
410    
411    <target name="compile"    <target name="compile"
412            depends="configure-compiler"            depends="configure-compiler"
413            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
414    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
415      <local name="destdir"/>      <local name="destdir"/>
416      <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>      <property name="destdir" value="${build.classes.dir}/java.base"/>
     <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>  
417    
418      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
419    
# Line 389  Line 425 
425             classpath=""             classpath=""
426             includeAntRuntime="false"             includeAntRuntime="false"
427             includeJavaRuntime="false"             includeJavaRuntime="false"
428               encoding="ASCII"
429             executable="${build.main.javac}"             executable="${build.main.javac}"
430             fork="true">             fork="true">
431    
432        <include name="**/*.java"/>        <include name="**/*.java"/>
433        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
434        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
435        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
436        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
437          <compilerarg line="--doclint-format html5"/>
438          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
439        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
440        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
441        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
442    
# Line 430  Line 468 
468      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
469      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
470    
471    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
472    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
473    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
474    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
475    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
476      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
477               packagenames="none"               packagenames="none"
478               link="${java9.api.url}"               link="${java9.api.url}"
479               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
480               access="${build.javadoc.access}"               access="${build.javadoc.access}"
481               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
482               classpath=""               classpath=""
483               executable="${javadoc9}">               source="9"
484                 executable="${build.main.javadoc}">
485        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
486          <include name="**/*.java"/>          <include name="**/*.java"/>
487        </fileset>        </fileset>
488        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
489        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
490        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
491  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
492          <arg value="--patch-module=java.base=${src.dir}"/>
493        <arg value="-tag"/>        <arg value="-tag"/>
494        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
495    <!-- @apiNote currently unused -->
496    <!--       <arg value="-tag"/> -->
497    <!--       <arg value="apiNote:a:API Note:"/> -->
498        <arg value="-tag"/>        <arg value="-tag"/>
499        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="implSpec:a:Implementation Requirements:"/>
500        <arg value="-tag"/>        <arg value="-tag"/>
501        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implNote:a:Implementation Note:"/>
502        <arg value="-tag"/>  <!-- tags added in jdk9: currently unused -->
503        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
504  <!-- tags added in jdk9 -->  <!--       <arg value="revised:X"/> -->
505        <arg value="-tag"/>  <!--       <arg value="-tag"/> -->
506        <arg value="revised:X"/>  <!--       <arg value="spec:X"/> -->
       <arg value="-tag"/>  
       <arg value="spec:X"/>  
507      </javadoc>      </javadoc>
508    </target>    </target>
509    
# Line 491  Line 537 
537    
538    <target name="clean"    <target name="clean"
539            description="Removes all build products">            description="Removes all build products">
   
540      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
541    </target>    </target>
542    
543    
544    <target name="dist-clean"    <target name="dist-clean"
545            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
546      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
547      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
548    </target>    </target>
549    
550    
# Line 523  Line 565 
565      <run-tck-tests      <run-tck-tests
566        target="${build.main.java.version}"        target="${build.main.java.version}"
567        workdir="${build.dir}"        workdir="${build.dir}"
568        classes="${product.jar}"/>        classes="${product.jar}">
569          <javac-elements>
570            <compilerarg value="-Werror"/>
571          </javac-elements>
572        </run-tck-tests>
573    </target>    </target>
574    
575    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 558  Line 604 
604    
605    <target name="test"    <target name="test"
606            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
607            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
608    
609  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
610    
# Line 570  Line 615 
615    
616  <!--   </target> -->  <!--   </target> -->
617    
618  <!--   <target name="test89" -->    <target name="test91011"
619  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->            description="Runs tck and jtreg tests for src/main for multiple java versions">
620    
621  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
622  <!--     <antcall target="test"> -->      <antcall target="test">
623  <!--       <param name="build.main.java.version" value="8"/> -->        <param name="build.main.java.version" value="9"/>
624  <!--       <param name="build.main.javac" value="${javac8}"/> -->      </antcall>
 <!--     </antcall> -->  
625    
626  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
627  <!--     <antcall target="test"> -->      <antcall target="test">
628  <!--       <param name="build.main.java.version" value="9"/> -->        <param name="build.main.java.version" value="10"/>
629  <!--       <param name="build.main.javac" value="${javac9}"/> -->      </antcall>
 <!--     </antcall> -->  
630    
631  <!--   </target> -->      <antcall target="clean"/>
632        <antcall target="test">
633          <param name="build.main.java.version" value="11"/>
634        </antcall>
635    
636        <!-- Clean up to avoid obscure wrong class file version bugs -->
637        <antcall target="clean"/>
638    
639      </target>
640    
641    
642    
643    <target name="configure-compiler">    <target name="configure-compiler">
644      <fail message="ant version too old">      <fail message="ant version too old">
645        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
646      </fail>      </fail>
647    
648      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 627  Line 676 
676        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
677             source="${build.sourcelevel}"             source="${build.sourcelevel}"
678             target="${build.sourcelevel}"             target="${build.sourcelevel}"
679             encoding="ASCII"
680               fork="true">               fork="true">
681    
682        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 638  Line 688 
688      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
689        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
690      </java>      </java>
   
691    </target>    </target>
692    
693    
694    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
695            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
696    
697      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
698    
# Line 654  Line 703 
703             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
704             includeAntRuntime="false"             includeAntRuntime="false"
705             includeJavaRuntime="false"             includeJavaRuntime="false"
706             executable="${javac9}"             encoding="ASCII"
707               executable="${build.main.javac}"
708             fork="true">             fork="true">
709    
710        <include name="*.java"/>        <include name="*.java"/>
# Line 662  Line 712 
712        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
713        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
714        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
715      </javac>      </javac>
   
716    </target>    </target>
717    
718    
# Line 687  Line 735 
735             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
736             includeAntRuntime="false"             includeAntRuntime="false"
737             includeJavaRuntime="false"             includeJavaRuntime="false"
738               encoding="ASCII"
739             executable="${javac8}"             executable="${javac8}"
740             fork="true">             fork="true">
   
741        <include name="**/*.java"/>        <include name="**/*.java"/>
742        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
743        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
744        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
745        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
746        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
747      </javac>      </javac>
748    </target>    </target>
749    
# Line 717  Line 764 
764             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
765             includeAntRuntime="false"             includeAntRuntime="false"
766             includeJavaRuntime="false"             includeJavaRuntime="false"
767               encoding="ASCII"
768             executable="${javac8}"             executable="${javac8}"
769             fork="true">             fork="true">
   
770        <include name="**/*.java"/>        <include name="**/*.java"/>
771        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
772        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
773        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
774        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
775        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
776      </javac>      </javac>
777    </target>    </target>
778    
# Line 742  Line 788 
788          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
789        </manifest>        </manifest>
790      </jar>      </jar>
   
791    </target>    </target>
792    
793    
# Line 758  Line 803 
803          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
804          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
805          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
806            <compilerarg value="-Werror"/>
807        </javac-elements>        </javac-elements>
808      </run-tck-tests>      </run-tck-tests>
809    </target>    </target>
# Line 775  Line 821 
821    
822    <target name="4jdk8-test"    <target name="4jdk8-test"
823            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
824            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
825    
826    
827    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 792  Line 837 
837               access="${build.javadoc.access}"               access="${build.javadoc.access}"
838               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
839               classpath=""               classpath=""
840                 source="8"
841               executable="${javadoc8}"               executable="${javadoc8}"
842               failonerror = "true">               failonerror = "true">
843        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 801  Line 847 
847        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
848        <arg value="-tag"/>        <arg value="-tag"/>
849        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
850        <arg value="-tag"/>  <!-- @apiNote currently unused -->
851        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
852    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
853        <arg value="-tag"/>        <arg value="-tag"/>
854        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
855        <arg value="-tag"/>        <arg value="-tag"/>
# Line 818  Line 865 
865    
866    <target name="4jdk8clean"    <target name="4jdk8clean"
867            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
868      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
869    </target>    </target>
870    
871    
# Line 836  Line 881 
881    </target>    </target>
882    
883    
884      <!-- jsr166 4jdk7 (no longer maintained) -->
885    
886    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
887      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
888    
889      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 856  Line 897 
897             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
898             includeAntRuntime="false"             includeAntRuntime="false"
899             includeJavaRuntime="false"             includeJavaRuntime="false"
900               encoding="ASCII"
901             executable="${javac7}"             executable="${javac7}"
902             fork="true">             fork="true">
903    
# Line 865  Line 907 
907        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
908        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
909        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
910      </javac>      </javac>
911    </target>    </target>
912    
913    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
914      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
915    
916      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 886  Line 924 
924             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
925             includeAntRuntime="false"             includeAntRuntime="false"
926             includeJavaRuntime="false"             includeJavaRuntime="false"
927               encoding="ASCII"
928             executable="${javac8}"             executable="${javac8}"
929             fork="true">             fork="true">
930    
# Line 895  Line 934 
934        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
935        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
936        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
937      </javac>      </javac>
938    </target>    </target>
939    
940      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
941      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
942        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
943        <manifest>        <manifest>
# Line 911  Line 945 
945          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
946        </manifest>        </manifest>
947      </jar>      </jar>
   
948    </target>    </target>
949    
950      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
951      <run-tck-tests      <run-tck-tests
952        target="7"        target="7"
953        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 936  Line 965 
965          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
966          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
967          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
968            <compilerarg value="-Werror"/>
969        </javac-elements>        </javac-elements>
970      </run-tck-tests>      </run-tck-tests>
971    </target>    </target>
972    
   
973    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
974    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
975    
976      <junit printsummary="true"      <junit printsummary="true"
977             showoutput="true"             showoutput="true"
# Line 965  Line 993 
993    
994        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
995        </test>        </test>
   
996      </junit>      </junit>
997    </target>    </target>
998    
999    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
1000      <run-jtreg-tests      <run-jtreg-tests
1001         target="7"         target="7"
1002         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
1003         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
1004    </target>    </target>
1005    
1006      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1007    
1008    <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">  
   
1009      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
1010      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
1011    
# Line 1008  Line 1026 
1026      </javadoc>      </javadoc>
1027    </target>    </target>
1028    
1029      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1030    
1031    <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">  
   
1032      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1033    </target>    </target>
1034    
1035      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1036      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1037    </target>    </target>
1038    
1039      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1040      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1041    </target>    </target>
1042    
1043    
1044    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1045    
1046      <target name="jsr166xcompile" depends="configure-compiler">
1047      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1048    
1049      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1053  Line 1057 
1057             target="5"             target="5"
1058             includeAntRuntime="false"             includeAntRuntime="false"
1059             includeJavaRuntime="false"             includeJavaRuntime="false"
1060               encoding="ASCII"
1061             executable="${javac7}"             executable="${javac7}"
1062             fork="true">             fork="true">
   
1063        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1064        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1065        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1066        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1067        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1068      </javac>      </javac>
1069    </target>    </target>
1070    
1071      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1072      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1073        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1074        <manifest>        <manifest>
# Line 1077  Line 1076 
1076          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1077        </manifest>        </manifest>
1078      </jar>      </jar>
   
1079    </target>    </target>
1080    
1081      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1082      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1083      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1084    
# Line 1098  Line 1093 
1093               failonerror = "true">               failonerror = "true">
1094        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1095        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1096      </javadoc>      </javadoc>
1097    </target>    </target>
1098    
1099      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1100    
1101    <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">  
   
1102      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1103    </target>    </target>
1104    
1105      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1106      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1107    </target>    </target>
1108    
1109    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1110      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1111    </target>    </target>
1112    
   <!-- jsr166y -->  
   
1113    
1114    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1115    
1116      <target name="jsr166ycompile" depends="configure-compiler">
1117      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1118    
1119      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1146  Line 1127 
1127             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1128             includeAntRuntime="false"             includeAntRuntime="false"
1129             includeJavaRuntime="false"             includeJavaRuntime="false"
1130               encoding="ASCII"
1131             executable="${javac7}"             executable="${javac7}"
1132             fork="true">             fork="true">
1133    
# Line 1154  Line 1136 
1136        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1137        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1138        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1139      </javac>      </javac>
1140    </target>    </target>
1141    
1142      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1143      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1144        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1145        <manifest>        <manifest>
# Line 1170  Line 1147 
1147          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1148        </manifest>        </manifest>
1149      </jar>      </jar>
   
1150    </target>    </target>
1151    
1152      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1153      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1154      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1155    
# Line 1191  Line 1164 
1164               failonerror = "true">               failonerror = "true">
1165        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1166        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1167      </javadoc>      </javadoc>
1168    </target>    </target>
1169    
1170      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1171    
1172    <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">  
   
1173      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1174    </target>    </target>
1175    
1176      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1177      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1178    </target>    </target>
1179    
1180    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1181      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1182    </target>    </target>
1183    
1184    
1185    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1186    
1187      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1188      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1189    
1190      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1240  Line 1198 
1198             target="6"             target="6"
1199             includeAntRuntime="false"             includeAntRuntime="false"
1200             includeJavaRuntime="false"             includeJavaRuntime="false"
1201               encoding="ASCII"
1202             executable="${javac7}"             executable="${javac7}"
1203             fork="true">             fork="true">
1204    
# Line 1248  Line 1207 
1207        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1208        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1209        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1210      </javac>      </javac>
1211    </target>    </target>
1212    
1213      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1214      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1215        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1216        <manifest>        <manifest>
# Line 1264  Line 1218 
1218          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1219        </manifest>        </manifest>
1220      </jar>      </jar>
   
1221    </target>    </target>
1222    
1223      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1224      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1225      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1226    
# Line 1284  Line 1234 
1234               executable="${javadoc7}">               executable="${javadoc7}">
1235        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1236        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1237      </javadoc>      </javadoc>
1238    </target>    </target>
1239    
1240      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1241    
1242    <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">  
   
1243      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1244    </target>    </target>
1245    
1246      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1247      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1248    </target>    </target>
1249    
1250    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1251      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1252    </target>    </target>
1253    
1254    <!-- jsr166e -->  
1255      <!-- jsr166e (no longer maintained) -->
1256    
1257    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1258    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1259    
1260    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1261      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1262    
1263      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1341  Line 1278 
1278        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1279        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1280        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1281      </javac>      </javac>
1282    </target>    </target>
1283    
   <!-- jsr166e: find doclint errors -->  
1284    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1285      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1286    
1287      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1369  Line 1303 
1303        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1304        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1305        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1306      </javac>      </javac>
1307    </target>    </target>
1308    
1309      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1310      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1311        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1312        <manifest>        <manifest>
# Line 1385  Line 1314 
1314          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1315        </manifest>        </manifest>
1316      </jar>      </jar>
   
1317    </target>    </target>
1318    
1319      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1320      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1321      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1322    
# Line 1405  Line 1330 
1330               failonerror = "true">               failonerror = "true">
1331        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1332        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1333      </javadoc>      </javadoc>
1334    </target>    </target>
1335    
1336      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1337      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1338      <run-tck-tests      <run-tck-tests
1339        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1340        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1422  Line 1342 
1342        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1343    </target>    </target>
1344    
1345    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1346    
1347  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1348  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1444  Line 1363 
1363      </antcall>      </antcall>
1364    </target>    </target>
1365    
1366      <target name="jsr166e-test" depends="jsr166e-tck"/>
1367    
1368    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
1369    
1370    <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">  
1371      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1372    </target>    </target>
1373    
   
1374    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1375            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1376      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1377    </target>    </target>
1378    
1379    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1380      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1381    </target>    </target>
1382    
# Line 1488  Line 1397 
1397    </target>    </target>
1398    
1399    
1400    <!-- ==============================================================
1401      Experimental errorprone support - http://errorprone.info
1402    =================================================================== -->
1403      <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.2.0.jar"/>
1404      <property name="errorprone.jsr166.flags"
1405                value="-Xep:HashtableContains:OFF
1406                       -Xep:JdkObsolete:OFF
1407                       -Xep:MissingOverride:OFF
1408                       -Xep:MissingFail:OFF
1409                       -Xep:MixedArrayDimensions:ERROR
1410                       -Xep:RemoveUnusedImports:ERROR
1411                       -Xep:EmptyIf:ERROR
1412                       -Xep:MultipleTopLevelClasses:ERROR
1413                       -Xep:ClassName:ERROR
1414                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1415                       -Xep:RedundantThrows:ERROR
1416                       -Xep:IdentityBinaryExpression:WARN
1417                       -Xep:MethodCanBeStatic:WARN"/>
1418      <!-- -Xep:WildcardImport:ERROR -->
1419      <property name="errorprone.jsr166.test.flags"
1420                value="-Xep:StringSplitter:OFF
1421                       -Xep:BoxedPrimitiveConstructor:OFF
1422                       -Xep:ModifyingCollectionWithItself:OFF"/>
1423      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1424      <target name="errorprone"
1425              depends="clean, configure-compiler"
1426              description="Run errorprone over jsr166 source code (experimental)">
1427    
1428        <local name="destdir"/>
1429        <property name="destdir" value="${build.classes.dir}/java.base"/>
1430        <mkdir dir="${destdir}"/>
1431    
1432        <javac srcdir="${src.dir}"
1433               destdir="${destdir}"
1434               debug="${build.debug}"
1435               debuglevel="${build.debuglevel}"
1436               deprecation="${build.deprecation}"
1437               classpath=""
1438               includeAntRuntime="false"
1439               includeJavaRuntime="false"
1440               encoding="ASCII"
1441               executable="${build.main.javac}"
1442               fork="true">
1443    
1444          <include name="**/*.java"/>
1445          <compilerarg value="-XDcompilePolicy=simple"/>
1446          <compilerarg line="-processorpath ${errorprone.jar}"/>
1447          <compilerarg value="-Xplugin:ErrorProne
1448                              ${errorprone.jsr166.flags}"/>
1449          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1450          <compilerarg value="-Xprefer:source"/>
1451          <compilerarg value="-XDignore.symbol.file=true"/>
1452          <compilerarg value="-Xlint:all"/>
1453          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1454          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1455          <compilerarg line="${build.args}"/>
1456        </javac>
1457    
1458        <jar destfile="${product.jar}">
1459          <fileset dir="${destdir}"/>
1460        </jar>
1461    
1462        <run-tck-tests
1463          target="${build.main.java.version}"
1464          workdir="${build.dir}"
1465          classes="${product.jar}">
1466          <javac-elements>
1467            <compilerarg value="-XDcompilePolicy=simple"/>
1468            <compilerarg line="-processorpath ${errorprone.jar}"/>
1469            <compilerarg value="-Xplugin:ErrorProne
1470                                ${errorprone.jsr166.flags}
1471                                ${errorprone.jsr166.test.flags}"/>
1472            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1473          </javac-elements>
1474        </run-tck-tests>
1475      </target>
1476    
1477      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1478      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1479      <target name="errorprone-jtreg"
1480              depends="jar"
1481              description="Run errorprone over jtreg tests (experimental)">
1482    
1483        <run-jtreg-tests
1484           target="${build.main.java.version}"
1485           workdir="${build.dir}"
1486           classes="${product.jar}"
1487           verbose="all">
1488          <jtreg-elements>
1489            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1490            <arg value="-javacoption:-processorpath"/>
1491            <arg value="-javacoption:${errorprone.jar}"/>
1492            <arg value="-javacoption:-Xplugin:ErrorProne
1493                                ${errorprone.jsr166.flags}
1494                                ${errorprone.jsr166.test.flags}
1495                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1496          </jtreg-elements>
1497        </run-jtreg-tests>
1498      </target>
1499    
1500    
1501    <!-- ==============================================================
1502      Running guava tests against jsr166 code
1503    =================================================================== -->
1504    
1505    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1506    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1507    <!-- <property name="guava.version" value="21.0"/> -->
1508    
1509    <!-- HOWTO debug print a path id -->
1510    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1511    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1512    
1513    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1514    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1515    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1516    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1517    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1518    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1519    
1520    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1521    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1522    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1523    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1524    
1525    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1526    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1527    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1528    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1529    
1530    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1531    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1532    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1533    
1534      <target name="init-ivy">
1535        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1536             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1537        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1538                 classpath="${build.dir}/ivy.jar"/>
1539      </target>
1540    
1541      <target name="guava-tests" depends="jar, init-ivy"
1542              description="Guava tests run against jsr166 collections">
1543        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1544        <mkdir dir="${guava.dir}"/>
1545        <ivy:retrieve pathid="guava.testlib.classpath"
1546          type="jar,bundle" inline="true" conf="default,master"
1547          pattern="${guava.dir}/[artifact].[ext]"
1548          organisation="com.google.guava" module="guava-testlib"/>
1549        <property name="guava.version" value="21.0"/>
1550        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1551             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1552        <junit printsummary="true" showoutput="true" haltonfailure="true"
1553               jvm="${build.main.java}" fork="true">
1554          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1555          <formatter type="brief"/>
1556          <classpath>
1557            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1558            <path refid="guava.testlib.classpath"/>
1559          </classpath>
1560    
1561          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1562          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1563        </junit>
1564      </target>
1565    
1566  </project>  </project>

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

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