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

Diff of /jsr166/build.xml

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

revision 1.211 by jsr166, Sat May 21 00:12:12 2016 UTC revision 1.265 by jsr166, Sun Feb 4 20:00:47 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          <!-- Force javadoc version to be at least 10,
400               so we can use override-methods=summary -->
401          <condition property="build.main.javadoc"
402                     value="${javadoc10}"
403                     else="${javadoc@{v}}">
404            <equals arg1="@{v}" arg2="9"/>
405          </condition>
406        </sequential>
407      </macrodef>
408      <define-build-main-properties v="${build.main.java.version}"/>
409    
410    <target name="dists"    <target name="dists"
411            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
412            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
413              <!--
414                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
415              -->
416    
417    <target name="compile"    <target name="compile"
418            depends="configure-compiler"            depends="configure-compiler"
419            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
420    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
421      <local name="destdir"/>      <local name="destdir"/>
422      <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"/>  
423    
424      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
425    
# Line 389  Line 431 
431             classpath=""             classpath=""
432             includeAntRuntime="false"             includeAntRuntime="false"
433             includeJavaRuntime="false"             includeJavaRuntime="false"
434               encoding="ASCII"
435             executable="${build.main.javac}"             executable="${build.main.javac}"
436             fork="true">             fork="true">
437    
438        <include name="**/*.java"/>        <include name="**/*.java"/>
439        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
440        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
441        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
442        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
443          <compilerarg line="--doclint-format html5"/>
444          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
445        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
446        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
447        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
448    
# Line 409  Line 453 
453    <target name="jar"    <target name="jar"
454            depends="compile"            depends="compile"
455            description="Builds library jar for src/main from compiled sources">            description="Builds library jar for src/main from compiled sources">
456        <local name="subdir"/>
457        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
458      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
459        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
460        <manifest>        <manifest>
461          <attribute name="Built-By" value="${user.name}"/>          <attribute name="Built-By" value="${user.name}"/>
462          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
# Line 429  Line 474 
474      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
475      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
476    
477    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
478    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
479    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
480    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
481    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
482      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
483               packagenames="none"               packagenames="none"
484               link="${java9.api.url}"               link="${java9.api.url}"
485               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
486               access="${build.javadoc.access}"               access="${build.javadoc.access}"
487               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
488               classpath=""               classpath=""
489               executable="${javadoc9}">               source="9"
490                 executable="${build.main.javadoc}">
491        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
492          <include name="**/*.java"/>          <include name="**/*.java"/>
493        </fileset>        </fileset>
494        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
495        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
496        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
497  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
498        <arg value="-tag"/>        <arg value="--patch-module=java.base=${src.dir}"/>
499        <arg value="${javadoc.jls.option}"/>        <arg value="--override-methods=summary"/>
500        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
501        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
502        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
503        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>  <!-- @apiNote tag currently unused -->
504        <arg value="-tag"/>  <!--  <arg value="-tag"/> <arg value="apiNote:a:API Note:"/> -->
505        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  <!-- tags added in jdk9: currently unused -->
506  <!-- tags added in jdk9 -->  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
507        <arg value="-tag"/>  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
       <arg value="revised:X"/>  
       <arg value="-tag"/>  
       <arg value="spec:X"/>  
508      </javadoc>      </javadoc>
509    </target>    </target>
510    
# Line 490  Line 538 
538    
539    <target name="clean"    <target name="clean"
540            description="Removes all build products">            description="Removes all build products">
   
541      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
542    </target>    </target>
543    
544    
545    <target name="dist-clean"    <target name="dist-clean"
546            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
547      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
548      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
549    </target>    </target>
550    
551    
# Line 522  Line 566 
566      <run-tck-tests      <run-tck-tests
567        target="${build.main.java.version}"        target="${build.main.java.version}"
568        workdir="${build.dir}"        workdir="${build.dir}"
569        classes="${product.jar}"/>        classes="${product.jar}">
570          <javac-elements>
571            <compilerarg value="-Werror"/>
572          </javac-elements>
573        </run-tck-tests>
574    </target>    </target>
575    
576    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 539  Line 587 
587      </antcall>      </antcall>
588    </target>    </target>
589    
590      <target name="tck-security-manager"
591              description="Runs tck with a security manager">
592        <antcall target="tck">
593          <param name="jsr166.useSecurityManager" value="true"/>
594        </antcall>
595      </target>
596    
597    <target name="jtreg"    <target name="jtreg"
598            depends="jar"            depends="jar"
599            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
# Line 550  Line 605 
605    
606    <target name="test"    <target name="test"
607            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
608            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
609    
610  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
611    
# Line 562  Line 616 
616    
617  <!--   </target> -->  <!--   </target> -->
618    
619  <!--   <target name="test89" -->    <target name="test91011"
620  <!--           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">
621    
622  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
623  <!--     <antcall target="test"> -->      <antcall target="test">
624  <!--       <param name="build.main.java.version" value="8"/> -->        <param name="build.main.java.version" value="9"/>
625  <!--       <param name="build.main.javac" value="${javac8}"/> -->      </antcall>
 <!--     </antcall> -->  
626    
627  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
628  <!--     <antcall target="test"> -->      <antcall target="test">
629  <!--       <param name="build.main.java.version" value="9"/> -->        <param name="build.main.java.version" value="10"/>
630  <!--       <param name="build.main.javac" value="${javac9}"/> -->      </antcall>
 <!--     </antcall> -->  
631    
632  <!--   </target> -->      <antcall target="clean"/>
633        <antcall target="test">
634          <param name="build.main.java.version" value="11"/>
635        </antcall>
636    
637        <!-- Clean up to avoid obscure wrong class file version bugs -->
638        <antcall target="clean"/>
639    
640      </target>
641    
642    
643    
644    <target name="configure-compiler">    <target name="configure-compiler">
645      <fail message="ant version too old">      <fail message="ant version too old">
646        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
647      </fail>      </fail>
648    
649      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 619  Line 677 
677        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
678             source="${build.sourcelevel}"             source="${build.sourcelevel}"
679             target="${build.sourcelevel}"             target="${build.sourcelevel}"
680             encoding="ASCII"
681               fork="true">               fork="true">
682    
683        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 630  Line 689 
689      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
690        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
691      </java>      </java>
   
692    </target>    </target>
693    
694    
695    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
696            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
697    
698      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
699    
# Line 646  Line 704 
704             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
705             includeAntRuntime="false"             includeAntRuntime="false"
706             includeJavaRuntime="false"             includeJavaRuntime="false"
707             executable="${javac9}"             encoding="ASCII"
708               executable="${build.main.javac}"
709             fork="true">             fork="true">
710    
711        <include name="*.java"/>        <include name="*.java"/>
# Line 654  Line 713 
713        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
714        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
715        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
716      </javac>      </javac>
   
717    </target>    </target>
718    
719    
# Line 679  Line 736 
736             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
737             includeAntRuntime="false"             includeAntRuntime="false"
738             includeJavaRuntime="false"             includeJavaRuntime="false"
739               encoding="ASCII"
740             executable="${javac8}"             executable="${javac8}"
741             fork="true">             fork="true">
   
742        <include name="**/*.java"/>        <include name="**/*.java"/>
743        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
744        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
745        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
746        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
747        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
748      </javac>      </javac>
749    </target>    </target>
750    
# Line 709  Line 765 
765             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
766             includeAntRuntime="false"             includeAntRuntime="false"
767             includeJavaRuntime="false"             includeJavaRuntime="false"
768               encoding="ASCII"
769             executable="${javac8}"             executable="${javac8}"
770             fork="true">             fork="true">
   
771        <include name="**/*.java"/>        <include name="**/*.java"/>
772        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
773        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
774        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
775        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
776        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
777      </javac>      </javac>
778    </target>    </target>
779    
# Line 734  Line 789 
789          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
790        </manifest>        </manifest>
791      </jar>      </jar>
   
792    </target>    </target>
793    
794    
# Line 750  Line 804 
804          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
805          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
806          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
807            <compilerarg value="-Werror"/>
808        </javac-elements>        </javac-elements>
809      </run-tck-tests>      </run-tck-tests>
810    </target>    </target>
# Line 767  Line 822 
822    
823    <target name="4jdk8-test"    <target name="4jdk8-test"
824            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
825            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
826    
827    
828    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 784  Line 838 
838               access="${build.javadoc.access}"               access="${build.javadoc.access}"
839               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
840               classpath=""               classpath=""
841                 source="8"
842               executable="${javadoc8}"               executable="${javadoc8}"
843               failonerror = "true">               failonerror = "true">
844        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 791  Line 846 
846        </fileset>        </fileset>
847        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
848        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
849        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
850        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
851        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
852        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!-- @apiNote tag currently unused -->
853        <arg value="-tag"/>  <!--  <arg value="-tag"/> <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
       <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>  
       <arg value="-tag"/>  
       <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  
854      </javadoc>      </javadoc>
855    </target>    </target>
856    
# Line 810  Line 862 
862    
863    <target name="4jdk8clean"    <target name="4jdk8clean"
864            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
865      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
866    </target>    </target>
867    
868    
# Line 828  Line 878 
878    </target>    </target>
879    
880    
881      <!-- jsr166 4jdk7 (no longer maintained) -->
882    
883    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
884      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
885    
886      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 848  Line 894 
894             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
895             includeAntRuntime="false"             includeAntRuntime="false"
896             includeJavaRuntime="false"             includeJavaRuntime="false"
897               encoding="ASCII"
898             executable="${javac7}"             executable="${javac7}"
899             fork="true">             fork="true">
900    
# Line 857  Line 904 
904        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
905        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
906        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
907      </javac>      </javac>
908    </target>    </target>
909    
910    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
911      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
912    
913      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 878  Line 921 
921             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
922             includeAntRuntime="false"             includeAntRuntime="false"
923             includeJavaRuntime="false"             includeJavaRuntime="false"
924               encoding="ASCII"
925             executable="${javac8}"             executable="${javac8}"
926             fork="true">             fork="true">
927    
# Line 887  Line 931 
931        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
932        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
933        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
934      </javac>      </javac>
935    </target>    </target>
936    
937      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
938      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
939        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
940        <manifest>        <manifest>
# Line 903  Line 942 
942          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
943        </manifest>        </manifest>
944      </jar>      </jar>
   
945    </target>    </target>
946    
947      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
948      <run-tck-tests      <run-tck-tests
949        target="7"        target="7"
950        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 928  Line 962 
962          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
963          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
964          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
965            <compilerarg value="-Werror"/>
966        </javac-elements>        </javac-elements>
967      </run-tck-tests>      </run-tck-tests>
968    </target>    </target>
969    
   
970    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
971    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
972    
973      <junit printsummary="true"      <junit printsummary="true"
974             showoutput="true"             showoutput="true"
# Line 957  Line 990 
990    
991        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
992        </test>        </test>
   
993      </junit>      </junit>
994    </target>    </target>
995    
996    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
997      <run-jtreg-tests      <run-jtreg-tests
998         target="7"         target="7"
999         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
1000         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
1001    </target>    </target>
1002    
1003      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1004    
1005    <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">  
   
1006      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
1007      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
1008    
# Line 1000  Line 1023 
1023      </javadoc>      </javadoc>
1024    </target>    </target>
1025    
1026      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1027    
1028    <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">  
   
1029      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1030    </target>    </target>
1031    
1032      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1033      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1034    </target>    </target>
1035    
1036      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1037      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1038    </target>    </target>
1039    
1040    
1041    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1042    
1043      <target name="jsr166xcompile" depends="configure-compiler">
1044      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1045    
1046      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1045  Line 1054 
1054             target="5"             target="5"
1055             includeAntRuntime="false"             includeAntRuntime="false"
1056             includeJavaRuntime="false"             includeJavaRuntime="false"
1057               encoding="ASCII"
1058             executable="${javac7}"             executable="${javac7}"
1059             fork="true">             fork="true">
   
1060        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1061        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1062        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1063        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1064        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1065      </javac>      </javac>
1066    </target>    </target>
1067    
1068      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1069      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1070        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1071        <manifest>        <manifest>
# Line 1069  Line 1073 
1073          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1074        </manifest>        </manifest>
1075      </jar>      </jar>
   
1076    </target>    </target>
1077    
1078      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1079      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1080      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1081    
# Line 1090  Line 1090 
1090               failonerror = "true">               failonerror = "true">
1091        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1092        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1093      </javadoc>      </javadoc>
1094    </target>    </target>
1095    
1096      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1097    
1098    <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">  
   
1099      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1100    </target>    </target>
1101    
1102      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1103      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1104    </target>    </target>
1105    
1106    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1107      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1108    </target>    </target>
1109    
   <!-- jsr166y -->  
   
1110    
1111    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1112    
1113      <target name="jsr166ycompile" depends="configure-compiler">
1114      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1115    
1116      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1138  Line 1124 
1124             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1125             includeAntRuntime="false"             includeAntRuntime="false"
1126             includeJavaRuntime="false"             includeJavaRuntime="false"
1127               encoding="ASCII"
1128             executable="${javac7}"             executable="${javac7}"
1129             fork="true">             fork="true">
1130    
# Line 1146  Line 1133 
1133        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1134        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1135        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1136      </javac>      </javac>
1137    </target>    </target>
1138    
1139      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1140      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1141        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1142        <manifest>        <manifest>
# Line 1162  Line 1144 
1144          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1145        </manifest>        </manifest>
1146      </jar>      </jar>
   
1147    </target>    </target>
1148    
1149      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1150      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1151      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1152    
# Line 1183  Line 1161 
1161               failonerror = "true">               failonerror = "true">
1162        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1163        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1164      </javadoc>      </javadoc>
1165    </target>    </target>
1166    
1167      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1168    
1169    <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">  
   
1170      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1171    </target>    </target>
1172    
1173      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1174      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1175    </target>    </target>
1176    
1177    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1178      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1179    </target>    </target>
1180    
1181    
1182    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1183    
1184      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1185      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1186    
1187      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1232  Line 1195 
1195             target="6"             target="6"
1196             includeAntRuntime="false"             includeAntRuntime="false"
1197             includeJavaRuntime="false"             includeJavaRuntime="false"
1198               encoding="ASCII"
1199             executable="${javac7}"             executable="${javac7}"
1200             fork="true">             fork="true">
1201    
# Line 1240  Line 1204 
1204        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1205        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1206        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1207      </javac>      </javac>
1208    </target>    </target>
1209    
1210      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1211      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1212        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1213        <manifest>        <manifest>
# Line 1256  Line 1215 
1215          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1216        </manifest>        </manifest>
1217      </jar>      </jar>
   
1218    </target>    </target>
1219    
1220      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1221      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1222      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1223    
# Line 1276  Line 1231 
1231               executable="${javadoc7}">               executable="${javadoc7}">
1232        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1233        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1234      </javadoc>      </javadoc>
1235    </target>    </target>
1236    
1237      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1238    
1239    <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">  
   
1240      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1241    </target>    </target>
1242    
1243      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1244      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1245    </target>    </target>
1246    
1247    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1248      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1249    </target>    </target>
1250    
1251    <!-- jsr166e -->  
1252      <!-- jsr166e (no longer maintained) -->
1253    
1254    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1255    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1256    
1257    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1258      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1259    
1260      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1333  Line 1275 
1275        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1276        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1277        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1278      </javac>      </javac>
1279    </target>    </target>
1280    
   <!-- jsr166e: find doclint errors -->  
1281    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1282      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1283    
1284      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1361  Line 1300 
1300        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1301        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1302        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1303      </javac>      </javac>
1304    </target>    </target>
1305    
1306      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1307      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1308        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1309        <manifest>        <manifest>
# Line 1377  Line 1311 
1311          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1312        </manifest>        </manifest>
1313      </jar>      </jar>
   
1314    </target>    </target>
1315    
1316      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1317      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1318      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1319    
# Line 1397  Line 1327 
1327               failonerror = "true">               failonerror = "true">
1328        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1329        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1330      </javadoc>      </javadoc>
1331    </target>    </target>
1332    
1333      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1334      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1335      <run-tck-tests      <run-tck-tests
1336        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1337        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1414  Line 1339 
1339        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1340    </target>    </target>
1341    
1342    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1343    
1344  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1345  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1436  Line 1360 
1360      </antcall>      </antcall>
1361    </target>    </target>
1362    
1363      <target name="jsr166e-test" depends="jsr166e-tck"/>
1364    
1365    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
1366    
1367    <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">  
1368      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1369    </target>    </target>
1370    
   
1371    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1372            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1373      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1374    </target>    </target>
1375    
1376    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1377      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1378    </target>    </target>
1379    
# Line 1480  Line 1394 
1394    </target>    </target>
1395    
1396    
1397    <!-- ==============================================================
1398      Experimental errorprone support - http://errorprone.info
1399    =================================================================== -->
1400      <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.2.0.jar"/>
1401      <property name="errorprone.jsr166.flags"
1402                value="-Xep:HashtableContains:OFF
1403                       -Xep:JdkObsolete:OFF
1404                       -Xep:MissingOverride:OFF
1405                       -Xep:MissingFail:OFF
1406                       -Xep:MixedArrayDimensions:ERROR
1407                       -Xep:RemoveUnusedImports:ERROR
1408                       -Xep:EmptyIf:ERROR
1409                       -Xep:MultipleTopLevelClasses:ERROR
1410                       -Xep:ClassName:ERROR
1411                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1412                       -Xep:RedundantThrows:ERROR
1413                       -Xep:IdentityBinaryExpression:WARN
1414                       -Xep:MethodCanBeStatic:WARN"/>
1415      <!-- -Xep:WildcardImport:ERROR -->
1416      <property name="errorprone.jsr166.test.flags"
1417                value="-Xep:StringSplitter:OFF
1418                       -Xep:BoxedPrimitiveConstructor:OFF
1419                       -Xep:ModifyingCollectionWithItself:OFF"/>
1420      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1421      <target name="errorprone"
1422              depends="clean, configure-compiler"
1423              description="Run errorprone over jsr166 source code (experimental)">
1424    
1425        <local name="destdir"/>
1426        <property name="destdir" value="${build.classes.dir}/java.base"/>
1427        <mkdir dir="${destdir}"/>
1428    
1429        <javac srcdir="${src.dir}"
1430               destdir="${destdir}"
1431               debug="${build.debug}"
1432               debuglevel="${build.debuglevel}"
1433               deprecation="${build.deprecation}"
1434               classpath=""
1435               includeAntRuntime="false"
1436               includeJavaRuntime="false"
1437               encoding="ASCII"
1438               executable="${build.main.javac}"
1439               fork="true">
1440    
1441          <include name="**/*.java"/>
1442          <compilerarg value="-XDcompilePolicy=simple"/>
1443          <compilerarg line="-processorpath ${errorprone.jar}"/>
1444          <compilerarg value="-Xplugin:ErrorProne
1445                              ${errorprone.jsr166.flags}"/>
1446          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1447          <compilerarg value="-Xprefer:source"/>
1448          <compilerarg value="-XDignore.symbol.file=true"/>
1449          <compilerarg value="-Xlint:all"/>
1450          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1451          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1452          <compilerarg line="${build.args}"/>
1453        </javac>
1454    
1455        <jar destfile="${product.jar}">
1456          <fileset dir="${destdir}"/>
1457        </jar>
1458    
1459        <run-tck-tests
1460          target="${build.main.java.version}"
1461          workdir="${build.dir}"
1462          classes="${product.jar}">
1463          <javac-elements>
1464            <compilerarg value="-XDcompilePolicy=simple"/>
1465            <compilerarg line="-processorpath ${errorprone.jar}"/>
1466            <compilerarg value="-Xplugin:ErrorProne
1467                                ${errorprone.jsr166.flags}
1468                                ${errorprone.jsr166.test.flags}"/>
1469            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1470          </javac-elements>
1471        </run-tck-tests>
1472      </target>
1473    
1474      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1475      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1476      <target name="errorprone-jtreg"
1477              depends="jar"
1478              description="Run errorprone over jtreg tests (experimental)">
1479    
1480        <run-jtreg-tests
1481           target="${build.main.java.version}"
1482           workdir="${build.dir}"
1483           classes="${product.jar}"
1484           verbose="all">
1485          <jtreg-elements>
1486            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1487            <arg value="-javacoption:-processorpath"/>
1488            <arg value="-javacoption:${errorprone.jar}"/>
1489            <arg value="-javacoption:-Xplugin:ErrorProne
1490                                ${errorprone.jsr166.flags}
1491                                ${errorprone.jsr166.test.flags}
1492                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1493          </jtreg-elements>
1494        </run-jtreg-tests>
1495      </target>
1496    
1497    
1498    <!-- ==============================================================
1499      Running guava tests against jsr166 code
1500    =================================================================== -->
1501    
1502    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1503    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1504    <!-- <property name="guava.version" value="21.0"/> -->
1505    
1506    <!-- HOWTO debug print a path id -->
1507    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1508    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1509    
1510    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1511    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1512    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1513    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1514    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1515    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1516    
1517    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1518    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1519    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1520    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1521    
1522    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1523    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1524    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1525    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1526    
1527    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1528    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1529    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1530    
1531      <target name="init-ivy">
1532        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1533             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1534        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1535                 classpath="${build.dir}/ivy.jar"/>
1536      </target>
1537    
1538      <target name="guava-tests" depends="jar, init-ivy"
1539              description="Guava tests run against jsr166 collections">
1540        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1541        <mkdir dir="${guava.dir}"/>
1542        <ivy:retrieve pathid="guava.testlib.classpath"
1543          type="jar,bundle" inline="true" conf="default,master"
1544          pattern="${guava.dir}/[artifact].[ext]"
1545          organisation="com.google.guava" module="guava-testlib"/>
1546        <property name="guava.version" value="21.0"/>
1547        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1548             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1549        <junit printsummary="true" showoutput="true" haltonfailure="true"
1550               jvm="${build.main.java}" fork="true">
1551          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1552          <formatter type="brief"/>
1553          <classpath>
1554            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1555            <path refid="guava.testlib.classpath"/>
1556          </classpath>
1557    
1558          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1559          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1560        </junit>
1561      </target>
1562    
1563  </project>  </project>

Legend:
Removed from v.1.211  
changed lines
  Added in v.1.265

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