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

Diff of /jsr166/build.xml

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

revision 1.205 by jsr166, Sat Mar 26 17:35:47 2016 UTC revision 1.256 by jsr166, Sun Oct 22 03:57:51 2017 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    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  
25    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
26    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
27      $HOME/jdk/src/jdk10
28    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
29    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
30    
31    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
32    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
33    for $N in 6 7 8 9 ...    for $N in 8 9 10 ...
34    
35    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.  
36  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
37    </description>    </description>
38    
39    <!-- Display main targets by running 'ant -projecthelp' -->    <!-- Run 'ant -projecthelp' (default target) -->
40    <target name="usage">    <target name="usage">
41      <java classname="org.apache.tools.ant.Main">      <java classname="org.apache.tools.ant.Main">
42        <arg value="-projecthelp" />        <arg value="-projecthelp" />
# Line 63  Line 61 
61    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
62    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
63    <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"/>  
64    
65    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
66    <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 131 
131    <defjdklocations v="7"/>    <defjdklocations v="7"/>
132    <defjdklocations v="8"/>    <defjdklocations v="8"/>
133    <defjdklocations v="9"/>    <defjdklocations v="9"/>
134      <defjdklocations v="10"/>
135    
136    <!-- Source locations -->    <!-- Source locations -->
137    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 143  Line 141 
141    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
142    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
143    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
144      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
145    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
146    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
147    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
# Line 182  Line 181 
181    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
182    
183    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
184    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <property name="java5.docroot.url"  value="http://docs.oracle.com/javase/1.5.0/docs"/>
185    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>    <property name="java6.docroot.url"  value="http://docs.oracle.com/javase/6/docs"/>
186    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>    <property name="java7.docroot.url"  value="http://docs.oracle.com/javase/7/docs"/>
187    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java8.docroot.url"  value="http://docs.oracle.com/javase/8/docs"/>
188    <!-- The expected canonical location does not yet exist as of 2016-03 -->    <property name="java9.docroot.url"  value="http://docs.oracle.com/javase/9/docs"/>
189    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <!-- The location of jdk9 early access docs -->
190    <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>    <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
191    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
192    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java.docroot.url"   value="${java9.docroot.url}"/>
193    
194    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
195    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 233  Line 232 
232        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
233      </condition>      </condition>
234    
235        <local name="use-doclint"/>
236        <condition property="use-doclint">
237          <not> <equals arg1="@{target}" arg2="7"/> </not>
238        </condition>
239    
240      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
241    
242      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 245  Line 249 
249             classpath="${junit.jar}"             classpath="${junit.jar}"
250             includeAntRuntime="false"             includeAntRuntime="false"
251             includeJavaRuntime="false"             includeJavaRuntime="false"
252               encoding="ASCII"
253             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
254             fork="true">             fork="true">
255    
256        <include name="*.java"/>        <include name="*.java"/>
257        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
258        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
259          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
260        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
261        <compilerarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
262        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
263        <javac-elements/>        <javac-elements/>
264    
# Line 263  Line 269 
269            jvm="${java@{target}}"            jvm="${java@{target}}"
270            fork="true">            fork="true">
271          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
272          <jvmarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
273            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
274            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
275            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
276            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
278          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
279            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
280            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
281    
282          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
283          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
284            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
285            <propertyref prefix="jsr166."/>            <propertyref prefix="jsr166."/>
# Line 283  Line 296 
296    </macrodef>    </macrodef>
297    
298    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
299      <fileset dir="${jtreg10.src.dir}">
300        <patternset id="jdk10.jtreg.tests">
301          <include name="**/*.java"/>
302        </patternset>
303      </fileset>
304    
305    <fileset dir="${jtreg9.src.dir}">    <fileset dir="${jtreg9.src.dir}">
306      <patternset id="jdk9.jtreg.tests">      <patternset id="jdk9.jtreg.tests">
307        <include name="**/*.java"/>        <include name="**/*.java"/>
# Line 292  Line 311 
311    <fileset dir="${jtreg8.src.dir}">    <fileset dir="${jtreg8.src.dir}">
312      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
313        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
314      </patternset>      </patternset>
315    </fileset>    </fileset>
316    
# Line 309  Line 325 
325    
326    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
327      <!-- 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"/>  
328      <attribute name="target"/>      <attribute name="target"/>
329      <attribute name="workdir"/>      <attribute name="workdir"/>
330      <attribute name="classes"/>      <attribute name="classes"/>
331        <attribute name="verbose" default="${jtreg.verbose}"/>
332      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
333        <element name="jtreg-elements" optional="true"/>
334    
335      <sequential>      <sequential>
336    
# Line 326  Line 343 
343      </condition>      </condition>
344    
345      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
     <mkdir dir="@{workdir}/JTwork/scratch"/>  
     <!-- workaround for https://bugs.openjdk.java.net/browse/CODETOOLS-7901571 -->  
     <mkdir dir="@{workdir}/JTreport/html"/>  
     <mkdir dir="@{workdir}/JTreport/text"/>  
346      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
347             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
348             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
349        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
350        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
351        <arg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
352          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
353        <arg value="-agentvm"/>        <arg value="-agentvm"/>
354        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-noreport"/>
355          <arg value="-verbose:@{verbose}"/>
356        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
357        <arg value="-automatic"/>        <arg value="-automatic"/>
358        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
359        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
360        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
361          <jtreg-elements/>
362      </jtreg>      </jtreg>
363      </sequential>      </sequential>
364    </macrodef>    </macrodef>
# Line 361  Line 375 
375    <!-- Main targets -->    <!-- Main targets -->
376    
377    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="9"/>
378    <property name="build.main.javac" value="${javac9}"/>    <!-- Workaround "no nested properties in ant" -->
379      <macrodef name="define-build-main-properties">
380        <attribute name="v"/>
381        <sequential>
382          <property name="build.main.java"    value="${java@{v}}"/>
383          <property name="build.main.javac"   value="${javac@{v}}"/>
384          <property name="build.main.javadoc" value="${javadoc@{v}}"/>
385        </sequential>
386      </macrodef>
387      <define-build-main-properties v="${build.main.java.version}"/>
388    
389    <target name="dists"    <target name="dists"
390            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
391            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
392              <!--
393                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
394              -->
395    
396    <target name="compile"    <target name="compile"
397            depends="configure-compiler"            depends="configure-compiler"
398            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
399    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
400      <local name="destdir"/>      <local name="destdir"/>
401      <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"/>  
402    
403      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
404    
# Line 393  Line 410 
410             classpath=""             classpath=""
411             includeAntRuntime="false"             includeAntRuntime="false"
412             includeJavaRuntime="false"             includeJavaRuntime="false"
413               encoding="ASCII"
414             executable="${build.main.javac}"             executable="${build.main.javac}"
415             fork="true">             fork="true">
416    
417        <include name="**/*.java"/>        <include name="**/*.java"/>
418        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
419        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
420        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
421        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
422          <compilerarg line="--doclint-format html5"/>
423          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
424        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
425        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
426        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
427    
# Line 413  Line 432 
432    <target name="jar"    <target name="jar"
433            depends="compile"            depends="compile"
434            description="Builds library jar for src/main from compiled sources">            description="Builds library jar for src/main from compiled sources">
435        <local name="subdir"/>
436        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
437      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
438        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
439        <manifest>        <manifest>
440          <attribute name="Built-By" value="${user.name}"/>          <attribute name="Built-By" value="${user.name}"/>
441          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
# Line 433  Line 453 
453      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
454      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
455    
456    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
457    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
458    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
459    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
460    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
461      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
462               packagenames="none"               packagenames="none"
463               link="${java9.api.url}"               link="${java9.api.url}"
464               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
465               access="${build.javadoc.access}"               access="${build.javadoc.access}"
466               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
467               classpath=""               classpath=""
468               executable="${javadoc9}">               source="9"
469                 executable="${build.main.javadoc}">
470        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
471          <include name="**/*.java"/>          <include name="**/*.java"/>
472        </fileset>        </fileset>
473        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
474        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
475        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
476  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
477          <arg value="--patch-module=java.base=${src.dir}"/>
478        <arg value="-tag"/>        <arg value="-tag"/>
479        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
480    <!-- @apiNote currently unused -->
481    <!--       <arg value="-tag"/> -->
482    <!--       <arg value="apiNote:a:API Note:"/> -->
483        <arg value="-tag"/>        <arg value="-tag"/>
484        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="implSpec:a:Implementation Requirements:"/>
       <arg value="-tag"/>  
       <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>  
       <arg value="-tag"/>  
       <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  
 <!-- tags added in jdk9 -->  
485        <arg value="-tag"/>        <arg value="-tag"/>
486        <arg value="revised:X"/>        <arg value="implNote:a:Implementation Note:"/>
487        <arg value="-tag"/>  <!-- tags added in jdk9: currently unused -->
488        <arg value="spec:X"/>  <!--       <arg value="-tag"/> -->
489    <!--       <arg value="revised:X"/> -->
490    <!--       <arg value="-tag"/> -->
491    <!--       <arg value="spec:X"/> -->
492      </javadoc>      </javadoc>
493    </target>    </target>
494    
# Line 494  Line 522 
522    
523    <target name="clean"    <target name="clean"
524            description="Removes all build products">            description="Removes all build products">
   
525      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
526    </target>    </target>
527    
528    
529    <target name="dist-clean"    <target name="dist-clean"
530            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
531      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
532      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
533    </target>    </target>
534    
535    
# Line 526  Line 550 
550      <run-tck-tests      <run-tck-tests
551        target="${build.main.java.version}"        target="${build.main.java.version}"
552        workdir="${build.dir}"        workdir="${build.dir}"
553        classes="${product.jar}"/>        classes="${product.jar}">
554          <javac-elements>
555            <compilerarg value="-Werror"/>
556          </javac-elements>
557        </run-tck-tests>
558    </target>    </target>
559    
560    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
561            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 1">
562      <antcall target="tck">      <antcall target="tck">
563        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
564      </antcall>      </antcall>
565    </target>    </target>
566    
567    <target name="tck-parallelism-0"    <target name="tck-parallelism-0"
568            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 0">
569      <antcall target="tck">      <antcall target="tck">
570        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
571      </antcall>      </antcall>
572    </target>    </target>
573    
574      <target name="tck-security-manager"
575              description="Runs tck with a security manager">
576        <antcall target="tck">
577          <param name="jsr166.useSecurityManager" value="true"/>
578        </antcall>
579      </target>
580    
581    <target name="jtreg"    <target name="jtreg"
582            depends="jar"            depends="jar"
583            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
# Line 553  Line 588 
588    </target>    </target>
589    
590    <target name="test"    <target name="test"
591            depends="tck, tck-parallelism-1, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
592            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
593    
594  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
595    
# Line 566  Line 600 
600    
601  <!--   </target> -->  <!--   </target> -->
602    
603  <!--   <target name="test89" -->    <target name="test910"
604  <!--           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">
605    
606  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
607  <!--     <antcall target="test"> -->      <antcall target="test">
608  <!--       <param name="build.main.java.version" value="8"/> -->        <param name="build.main.java.version" value="9"/>
609  <!--       <param name="build.main.javac" value="${javac8}"/> -->      </antcall>
 <!--     </antcall> -->  
610    
611  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
612  <!--     <antcall target="test"> -->      <antcall target="test">
613  <!--       <param name="build.main.java.version" value="9"/> -->        <param name="build.main.java.version" value="10"/>
614  <!--       <param name="build.main.javac" value="${javac9}"/> -->      </antcall>
 <!--     </antcall> -->  
615    
616  <!--   </target> -->      <!-- Clean up to avoid obscure wrong class file version bugs -->
617        <antcall target="clean"/>
618    
619      </target>
620    
621    
622    
623    <target name="configure-compiler">    <target name="configure-compiler">
624      <fail message="ant version too old">      <fail message="ant version too old">
625        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
626      </fail>      </fail>
627    
628      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 623  Line 656 
656        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
657             source="${build.sourcelevel}"             source="${build.sourcelevel}"
658             target="${build.sourcelevel}"             target="${build.sourcelevel}"
659             encoding="ASCII"
660               fork="true">               fork="true">
661    
662        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 634  Line 668 
668      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
669        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
670      </java>      </java>
   
671    </target>    </target>
672    
673    
674    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
675            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
676    
677      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
678    
# Line 650  Line 683 
683             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
684             includeAntRuntime="false"             includeAntRuntime="false"
685             includeJavaRuntime="false"             includeJavaRuntime="false"
686             executable="${javac9}"             encoding="ASCII"
687               executable="${build.main.javac}"
688             fork="true">             fork="true">
689    
690        <include name="*.java"/>        <include name="*.java"/>
# Line 658  Line 692 
692        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
693        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
694        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
695      </javac>      </javac>
   
696    </target>    </target>
697    
698    
# Line 683  Line 715 
715             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
716             includeAntRuntime="false"             includeAntRuntime="false"
717             includeJavaRuntime="false"             includeJavaRuntime="false"
718               encoding="ASCII"
719             executable="${javac8}"             executable="${javac8}"
720             fork="true">             fork="true">
   
721        <include name="**/*.java"/>        <include name="**/*.java"/>
722        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
723        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
724        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
725        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
726        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
727      </javac>      </javac>
728    </target>    </target>
729    
# Line 713  Line 744 
744             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
745             includeAntRuntime="false"             includeAntRuntime="false"
746             includeJavaRuntime="false"             includeJavaRuntime="false"
747               encoding="ASCII"
748             executable="${javac8}"             executable="${javac8}"
749             fork="true">             fork="true">
   
750        <include name="**/*.java"/>        <include name="**/*.java"/>
751        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
752        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
753        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
754        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
755        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
756      </javac>      </javac>
757    </target>    </target>
758    
# Line 738  Line 768 
768          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
769        </manifest>        </manifest>
770      </jar>      </jar>
   
771    </target>    </target>
772    
773    
# Line 754  Line 783 
783          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
784          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
785          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
786            <compilerarg value="-Werror"/>
787        </javac-elements>        </javac-elements>
788      </run-tck-tests>      </run-tck-tests>
789    </target>    </target>
# Line 771  Line 801 
801    
802    <target name="4jdk8-test"    <target name="4jdk8-test"
803            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
804            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
805    
806    
807    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 788  Line 817 
817               access="${build.javadoc.access}"               access="${build.javadoc.access}"
818               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
819               classpath=""               classpath=""
820               executable="${javadoc8}">               source="8"
821                 executable="${javadoc8}"
822                 failonerror = "true">
823        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
824          <include name="**/*.java"/>          <include name="**/*.java"/>
825        </fileset>        </fileset>
# Line 796  Line 827 
827        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
828        <arg value="-tag"/>        <arg value="-tag"/>
829        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
830        <arg value="-tag"/>  <!-- @apiNote currently unused -->
831        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
832    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
833        <arg value="-tag"/>        <arg value="-tag"/>
834        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
835        <arg value="-tag"/>        <arg value="-tag"/>
# Line 813  Line 845 
845    
846    <target name="4jdk8clean"    <target name="4jdk8clean"
847            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
848      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
849    </target>    </target>
850    
851    
# Line 831  Line 861 
861    </target>    </target>
862    
863    
864      <!-- jsr166 4jdk7 (no longer maintained) -->
865    
866    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
867      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
868    
869      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 851  Line 877 
877             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
878             includeAntRuntime="false"             includeAntRuntime="false"
879             includeJavaRuntime="false"             includeJavaRuntime="false"
880               encoding="ASCII"
881             executable="${javac7}"             executable="${javac7}"
882             fork="true">             fork="true">
883    
# Line 860  Line 887 
887        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
888        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
889        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
890      </javac>      </javac>
891    </target>    </target>
892    
893    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
894      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
895    
896      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 881  Line 904 
904             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
905             includeAntRuntime="false"             includeAntRuntime="false"
906             includeJavaRuntime="false"             includeJavaRuntime="false"
907               encoding="ASCII"
908             executable="${javac8}"             executable="${javac8}"
909             fork="true">             fork="true">
910    
# Line 890  Line 914 
914        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
915        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
916        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
917      </javac>      </javac>
918    </target>    </target>
919    
920      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
921      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
922        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
923        <manifest>        <manifest>
# Line 906  Line 925 
925          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
926        </manifest>        </manifest>
927      </jar>      </jar>
   
928    </target>    </target>
929    
930      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
931      <run-tck-tests      <run-tck-tests
932        target="7"        target="7"
933        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 931  Line 945 
945          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
946          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
947          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
948            <compilerarg value="-Werror"/>
949        </javac-elements>        </javac-elements>
950      </run-tck-tests>      </run-tck-tests>
951    </target>    </target>
952    
   
953    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
954    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
955    
956      <junit printsummary="true"      <junit printsummary="true"
957             showoutput="true"             showoutput="true"
# Line 960  Line 973 
973    
974        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
975        </test>        </test>
   
976      </junit>      </junit>
977    </target>    </target>
978    
979    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
980      <run-jtreg-tests      <run-jtreg-tests
981         target="7"         target="7"
982         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
983         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
984    </target>    </target>
985    
986      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
987    
988    <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">  
   
989      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
990      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
991    
# Line 993  Line 996 
996               access="${build.javadoc.access}"               access="${build.javadoc.access}"
997               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
998               classpath=""               classpath=""
999               executable="${javadoc7}">               executable="${javadoc7}"
1000                 failonerror = "true">
1001        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1002          <include name="**/*.java"/>          <include name="**/*.java"/>
1003        </fileset>        </fileset>
# Line 1002  Line 1006 
1006      </javadoc>      </javadoc>
1007    </target>    </target>
1008    
1009      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1010    
1011    <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">  
   
1012      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1013    </target>    </target>
1014    
1015      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1016      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1017    </target>    </target>
1018    
1019      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1020      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1021    </target>    </target>
1022    
1023    
1024    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1025    
1026      <target name="jsr166xcompile" depends="configure-compiler">
1027      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1028    
1029      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1047  Line 1037 
1037             target="5"             target="5"
1038             includeAntRuntime="false"             includeAntRuntime="false"
1039             includeJavaRuntime="false"             includeJavaRuntime="false"
1040               encoding="ASCII"
1041             executable="${javac7}"             executable="${javac7}"
1042             fork="true">             fork="true">
   
1043        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1044        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1045        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1046        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1047        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1048      </javac>      </javac>
1049    </target>    </target>
1050    
1051      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1052      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1053        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1054        <manifest>        <manifest>
# Line 1071  Line 1056 
1056          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1057        </manifest>        </manifest>
1058      </jar>      </jar>
   
1059    </target>    </target>
1060    
1061      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1062      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1063      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1064    
# Line 1088  Line 1069 
1069               sourcepath="${topsrc.dir}:${jdk6.src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1070               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1071               source="5"               source="5"
1072               executable="${javadoc7}">               executable="${javadoc7}"
1073                 failonerror = "true">
1074        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1075        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1076      </javadoc>      </javadoc>
1077    </target>    </target>
1078    
1079      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1080    
1081    <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">  
   
1082      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1083    </target>    </target>
1084    
1085      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1086      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1087    </target>    </target>
1088    
1089    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1090      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1091    </target>    </target>
1092    
   <!-- jsr166y -->  
1093    
1094      <!-- jsr166y (no longer maintained) -->
1095    
1096    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1097      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1098    
1099      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1139  Line 1107 
1107             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1108             includeAntRuntime="false"             includeAntRuntime="false"
1109             includeJavaRuntime="false"             includeJavaRuntime="false"
1110               encoding="ASCII"
1111             executable="${javac7}"             executable="${javac7}"
1112             fork="true">             fork="true">
1113    
# Line 1147  Line 1116 
1116        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1117        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1118        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1119      </javac>      </javac>
1120    </target>    </target>
1121    
1122      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1123      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1124        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1125        <manifest>        <manifest>
# Line 1163  Line 1127 
1127          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1128        </manifest>        </manifest>
1129      </jar>      </jar>
   
1130    </target>    </target>
1131    
1132      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1133      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1134      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1135    
# Line 1180  Line 1140 
1140               sourcepath="${topsrc.dir}:${jdk6.src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1141               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1142               source="6"               source="6"
1143               executable="${javadoc7}">               executable="${javadoc7}"
1144                 failonerror = "true">
1145        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1146        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1147      </javadoc>      </javadoc>
1148    </target>    </target>
1149    
1150      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1151    
1152    <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">  
   
1153      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1154    </target>    </target>
1155    
1156      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1157      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1158    </target>    </target>
1159    
1160    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1161      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1162    </target>    </target>
1163    
1164    
1165    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1166    
1167      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1168      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1169    
1170      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1232  Line 1178 
1178             target="6"             target="6"
1179             includeAntRuntime="false"             includeAntRuntime="false"
1180             includeJavaRuntime="false"             includeJavaRuntime="false"
1181               encoding="ASCII"
1182             executable="${javac7}"             executable="${javac7}"
1183             fork="true">             fork="true">
1184    
# Line 1240  Line 1187 
1187        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1188        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1189        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1190      </javac>      </javac>
1191    </target>    </target>
1192    
1193      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1194      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1195        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1196        <manifest>        <manifest>
# Line 1256  Line 1198 
1198          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1199        </manifest>        </manifest>
1200      </jar>      </jar>
   
1201    </target>    </target>
1202    
1203      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1204      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1205      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1206    
# Line 1276  Line 1214 
1214               executable="${javadoc7}">               executable="${javadoc7}">
1215        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1216        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1217      </javadoc>      </javadoc>
1218    </target>    </target>
1219    
1220      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1221    
1222    <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">  
   
1223      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1224    </target>    </target>
1225    
1226      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1227      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1228    </target>    </target>
1229    
1230    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1231      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1232    </target>    </target>
1233    
1234    <!-- jsr166e -->  
1235      <!-- jsr166e (no longer maintained) -->
1236    
1237    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1238    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1239    
1240    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1241      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1242    
1243      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1333  Line 1258 
1258        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1259        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1260        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1261      </javac>      </javac>
1262    </target>    </target>
1263    
   <!-- jsr166e: find doclint errors -->  
1264    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1265      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1266    
1267      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1361  Line 1283 
1283        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1284        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1285        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1286      </javac>      </javac>
1287    </target>    </target>
1288    
1289      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1290      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1291        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1292        <manifest>        <manifest>
# Line 1377  Line 1294 
1294          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1295        </manifest>        </manifest>
1296      </jar>      </jar>
   
1297    </target>    </target>
1298    
1299      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1300      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1301      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1302    
# Line 1393  Line 1306 
1306               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1307               sourcepath="${topsrc.dir}:${jdk6.src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1308               source="${build.jsr166e.java.version}"               source="${build.jsr166e.java.version}"
1309               executable="${javadoc7}">               executable="${javadoc7}"
1310                 failonerror = "true">
1311        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1312        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1313      </javadoc>      </javadoc>
1314    </target>    </target>
1315    
1316      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1317      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1318      <run-tck-tests      <run-tck-tests
1319        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1320        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1413  Line 1322 
1322        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1323    </target>    </target>
1324    
1325    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1326    
1327  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1328  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1435  Line 1343 
1343      </antcall>      </antcall>
1344    </target>    </target>
1345    
1346      <target name="jsr166e-test" depends="jsr166e-tck"/>
1347    
1348    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
1349    
1350    <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">  
1351      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1352    </target>    </target>
1353    
   
1354    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1355            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1356      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1357    </target>    </target>
1358    
1359    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1360      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1361    </target>    </target>
1362    
# Line 1479  Line 1377 
1377    </target>    </target>
1378    
1379    
1380    <!-- ==============================================================
1381      Experimental errorprone support - http://errorprone.info
1382    =================================================================== -->
1383      <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.1.2.jar"/>
1384      <target name="errorprone"
1385              depends="clean, configure-compiler"
1386              description="Run errorprone over jsr166 source code (experimental)">
1387    
1388        <local name="destdir"/>
1389        <property name="destdir" value="${build.classes.dir}/java.base"/>
1390        <mkdir dir="${destdir}"/>
1391    
1392        <javac srcdir="${src.dir}"
1393               destdir="${destdir}"
1394               debug="${build.debug}"
1395               debuglevel="${build.debuglevel}"
1396               deprecation="${build.deprecation}"
1397               classpath=""
1398               includeAntRuntime="false"
1399               includeJavaRuntime="false"
1400               encoding="ASCII"
1401               executable="${build.main.javac}"
1402               fork="true">
1403    
1404          <include name="**/*.java"/>
1405          <compilerarg line="-processorpath ${errorprone.jar}"/>
1406          <compilerarg value="-Xplugin:ErrorProne
1407                              -Xep:IdentityBinaryExpression:WARN
1408                              -Xep:MissingOverride:OFF
1409                              -Xep:MixedArrayDimensions:ERROR
1410                              -Xep:RemoveUnusedImports:ERROR
1411                              -Xep:ClassName:ERROR
1412                              -Xep:MultipleTopLevelClasses:ERROR
1413                              -Xep:EmptyIf:ERROR
1414                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1415                              -Xep:RedundantThrows:ERROR
1416                              -Xep:MethodCanBeStatic:WARN"/>
1417          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1418          <compilerarg value="-Xprefer:source"/>
1419          <compilerarg value="-XDignore.symbol.file=true"/>
1420          <compilerarg value="-Xlint:all"/>
1421          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1422          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1423          <compilerarg line="${build.args}"/>
1424        </javac>
1425    
1426        <jar destfile="${product.jar}">
1427          <fileset dir="${destdir}"/>
1428        </jar>
1429    
1430        <run-tck-tests
1431          target="${build.main.java.version}"
1432          workdir="${build.dir}"
1433          classes="${product.jar}">
1434          <javac-elements>
1435            <compilerarg line="-processorpath ${errorprone.jar}"/>
1436            <compilerarg value="-Xplugin:ErrorProne
1437                                -Xep:IdentityBinaryExpression:WARN
1438                                -Xep:BoxedPrimitiveConstructor:OFF
1439                                -Xep:HashtableContains:OFF
1440                                -Xep:ModifyingCollectionWithItself:OFF
1441                                -Xep:MissingOverride:OFF
1442                                -Xep:MissingFail:OFF
1443                                -Xep:JdkObsolete:OFF
1444                                -Xep:MixedArrayDimensions:ERROR
1445                                -Xep:RemoveUnusedImports:ERROR
1446                                -Xep:ClassName:ERROR
1447                                -Xep:MultipleTopLevelClasses:ERROR
1448                                -Xep:EmptyIf:ERROR
1449                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1450                                -Xep:RedundantThrows:ERROR
1451                                -Xep:MethodCanBeStatic:WARN"/>
1452            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1453          </javac-elements>
1454        </run-tck-tests>
1455      </target>
1456    
1457      <!-- ant errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1458      <target name="errorprone-jtreg"
1459              depends="jar"
1460              description="Run errorprone over jtreg tests (experimental)">
1461    
1462        <run-jtreg-tests
1463           target="${build.main.java.version}"
1464           workdir="${build.dir}"
1465           classes="${product.jar}"
1466           verbose="all">
1467          <jtreg-elements>
1468            <arg value="-javacoption:-processorpath"/>
1469            <arg value="-javacoption:${errorprone.jar}"/>
1470            <arg value="-javacoption:-Xplugin:ErrorProne
1471                                -Xep:IdentityBinaryExpression:WARN
1472                                -Xep:BoxedPrimitiveConstructor:OFF
1473                                -Xep:HashtableContains:OFF
1474                                -Xep:ModifyingCollectionWithItself:OFF
1475                                -Xep:MissingOverride:OFF
1476                                -Xep:JdkObsolete:OFF
1477                                -Xep:NonAtomicVolatileUpdate:OFF
1478                                -Xep:MixedArrayDimensions:ERROR
1479                                -Xep:RemoveUnusedImports:ERROR
1480                                -Xep:ClassName:ERROR
1481                                -Xep:MultipleTopLevelClasses:ERROR
1482                                -Xep:EmptyIf:ERROR
1483                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1484                                -Xep:RedundantThrows:ERROR
1485                                -Xep:MethodCanBeStatic:WARN"/>
1486          </jtreg-elements>
1487        </run-jtreg-tests>
1488      </target>
1489    
1490    
1491    <!-- ==============================================================
1492      Running guava tests against jsr166 code
1493    =================================================================== -->
1494    
1495    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1496    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1497    <!-- <property name="guava.version" value="21.0"/> -->
1498    
1499    <!-- HOWTO debug print a path id -->
1500    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1501    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1502    
1503    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1504    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1505    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1506    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1507    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1508    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1509    
1510    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1511    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1512    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1513    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1514    
1515    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1516    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1517    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1518    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1519    
1520    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1521    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1522    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1523    
1524      <target name="init-ivy">
1525        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1526             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1527        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1528                 classpath="${build.dir}/ivy.jar"/>
1529      </target>
1530    
1531      <target name="guava-tests" depends="jar, init-ivy"
1532              description="Guava tests run against jsr166 collections">
1533        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1534        <mkdir dir="${guava.dir}"/>
1535        <ivy:retrieve pathid="guava.testlib.classpath"
1536          type="jar,bundle" inline="true" conf="default,master"
1537          pattern="${guava.dir}/[artifact].[ext]"
1538          organisation="com.google.guava" module="guava-testlib"/>
1539        <property name="guava.version" value="21.0"/>
1540        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1541             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1542        <junit printsummary="true" showoutput="true" haltonfailure="true"
1543               jvm="${build.main.java}" fork="true">
1544          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1545          <formatter type="brief"/>
1546          <classpath>
1547            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1548            <path refid="guava.testlib.classpath"/>
1549          </classpath>
1550    
1551          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1552          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1553        </junit>
1554      </target>
1555    
1556  </project>  </project>

Legend:
Removed from v.1.205  
changed lines
  Added in v.1.256

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