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

Diff of /jsr166/build.xml

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

revision 1.211, Sat May 21 00:12:12 2016 UTC revision 1.259, Mon Dec 18 21:07:18 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    
# 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"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
185    <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"/>
186    <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"/>
187    <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"/>
188    <!-- 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"/>
189    <!-- <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"/>
190    <property name="java9.docroot.url"      value="http://http://download.java.net/java/jdk9/docs"/>    <!-- The location of jdk9 early access docs (RIP) -->
191      <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
192    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
193    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/>
194      <property name="java.docroot.url"   value="${java9.docroot.url}"/>
195    
196    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
197    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 198  Line 199 
199    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
200    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
201    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
202      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
203    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
204    
205    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 233  Line 235 
235        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
236      </condition>      </condition>
237    
238        <local name="use-doclint"/>
239        <condition property="use-doclint">
240          <not> <equals arg1="@{target}" arg2="7"/> </not>
241        </condition>
242    
243      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
244    
245      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 245  Line 252 
252             classpath="${junit.jar}"             classpath="${junit.jar}"
253             includeAntRuntime="false"             includeAntRuntime="false"
254             includeJavaRuntime="false"             includeJavaRuntime="false"
255               encoding="ASCII"
256             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
257             fork="true">             fork="true">
258    
259        <include name="*.java"/>        <include name="*.java"/>
260        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
261        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
262          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
263        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
264        <compilerarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
265        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
266        <javac-elements/>        <javac-elements/>
267    
# Line 263  Line 272 
272            jvm="${java@{target}}"            jvm="${java@{target}}"
273            fork="true">            fork="true">
274          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
275          <jvmarg value="-Xpatch:java.base=${build.classes.dir}/java.base" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
276            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
278            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
279            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
280            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
281          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
282            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
283            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
284    
285          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
286          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
# Line 283  Line 299 
299    </macrodef>    </macrodef>
300    
301    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
302      <fileset dir="${jtreg10.src.dir}">
303        <patternset id="jdk10.jtreg.tests">
304          <include name="**/*.java"/>
305        </patternset>
306      </fileset>
307    
308    <fileset dir="${jtreg9.src.dir}">    <fileset dir="${jtreg9.src.dir}">
309      <patternset id="jdk9.jtreg.tests">      <patternset id="jdk9.jtreg.tests">
310        <include name="**/*.java"/>        <include name="**/*.java"/>
# Line 292  Line 314 
314    <fileset dir="${jtreg8.src.dir}">    <fileset dir="${jtreg8.src.dir}">
315      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
316        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
317      </patternset>      </patternset>
318    </fileset>    </fileset>
319    
# Line 309  Line 328 
328    
329    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
330      <!-- 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"/>  
331      <attribute name="target"/>      <attribute name="target"/>
332      <attribute name="workdir"/>      <attribute name="workdir"/>
333      <attribute name="classes"/>      <attribute name="classes"/>
334        <attribute name="verbose" default="${jtreg.verbose}"/>
335      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
336        <element name="jtreg-elements" optional="true"/>
337    
338      <sequential>      <sequential>
339    
# Line 326  Line 346 
346      </condition>      </condition>
347    
348      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
349      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
350             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
351             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
352        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
353        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
354        <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"/>
355          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
356        <arg value="-agentvm"/>        <arg value="-agentvm"/>
357        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-noreport"/>
358          <arg value="-verbose:@{verbose}"/>
359        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
360        <arg value="-automatic"/>        <arg value="-automatic"/>
361        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
362        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
363        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
364          <jtreg-elements/>
365      </jtreg>      </jtreg>
366      </sequential>      </sequential>
367    </macrodef>    </macrodef>
# Line 357  Line 378 
378    <!-- Main targets -->    <!-- Main targets -->
379    
380    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="9"/>
381    <property name="build.main.javac" value="${javac9}"/>    <!-- Workaround "no nested properties in ant" -->
382      <macrodef name="define-build-main-properties">
383        <attribute name="v"/>
384        <sequential>
385          <property name="build.main.java"    value="${java@{v}}"/>
386          <property name="build.main.javac"   value="${javac@{v}}"/>
387          <property name="build.main.javadoc" value="${javadoc@{v}}"/>
388        </sequential>
389      </macrodef>
390      <define-build-main-properties v="${build.main.java.version}"/>
391    
392    <target name="dists"    <target name="dists"
393            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
394            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
395              <!--
396                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
397              -->
398    
399    <target name="compile"    <target name="compile"
400            depends="configure-compiler"            depends="configure-compiler"
401            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
402    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
403      <local name="destdir"/>      <local name="destdir"/>
404      <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"/>  
405    
406      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
407    
# Line 389  Line 413 
413             classpath=""             classpath=""
414             includeAntRuntime="false"             includeAntRuntime="false"
415             includeJavaRuntime="false"             includeJavaRuntime="false"
416               encoding="ASCII"
417             executable="${build.main.javac}"             executable="${build.main.javac}"
418             fork="true">             fork="true">
419    
420        <include name="**/*.java"/>        <include name="**/*.java"/>
421        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
422        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
423        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
424        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
425          <compilerarg line="--doclint-format html5"/>
426          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
427        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
428        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
429        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
430    
# Line 409  Line 435 
435    <target name="jar"    <target name="jar"
436            depends="compile"            depends="compile"
437            description="Builds library jar for src/main from compiled sources">            description="Builds library jar for src/main from compiled sources">
438        <local name="subdir"/>
439        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
440      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
441        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
442        <manifest>        <manifest>
443          <attribute name="Built-By" value="${user.name}"/>          <attribute name="Built-By" value="${user.name}"/>
444          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
# Line 429  Line 456 
456      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
457      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
458    
459    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
460    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
461    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
462    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
463    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
464      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
465               packagenames="none"               packagenames="none"
466               link="${java9.api.url}"               link="${java9.api.url}"
467               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
468               access="${build.javadoc.access}"               access="${build.javadoc.access}"
469               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
470               classpath=""               classpath=""
471               executable="${javadoc9}">               source="9"
472                 executable="${build.main.javadoc}">
473        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
474          <include name="**/*.java"/>          <include name="**/*.java"/>
475        </fileset>        </fileset>
476        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
477        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
478        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
479  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
480          <arg value="--patch-module=java.base=${src.dir}"/>
481        <arg value="-tag"/>        <arg value="-tag"/>
482        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
483    <!-- @apiNote currently unused -->
484    <!--       <arg value="-tag"/> -->
485    <!--       <arg value="apiNote:a:API Note:"/> -->
486        <arg value="-tag"/>        <arg value="-tag"/>
487        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="implSpec:a:Implementation Requirements:"/>
488        <arg value="-tag"/>        <arg value="-tag"/>
489        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implNote:a:Implementation Note:"/>
490        <arg value="-tag"/>  <!-- tags added in jdk9: currently unused -->
491        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
492  <!-- tags added in jdk9 -->  <!--       <arg value="revised:X"/> -->
493        <arg value="-tag"/>  <!--       <arg value="-tag"/> -->
494        <arg value="revised:X"/>  <!--       <arg value="spec:X"/> -->
       <arg value="-tag"/>  
       <arg value="spec:X"/>  
495      </javadoc>      </javadoc>
496    </target>    </target>
497    
# Line 490  Line 525 
525    
526    <target name="clean"    <target name="clean"
527            description="Removes all build products">            description="Removes all build products">
   
528      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
529    </target>    </target>
530    
531    
532    <target name="dist-clean"    <target name="dist-clean"
533            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
534      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
535      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
536    </target>    </target>
537    
538    
# Line 522  Line 553 
553      <run-tck-tests      <run-tck-tests
554        target="${build.main.java.version}"        target="${build.main.java.version}"
555        workdir="${build.dir}"        workdir="${build.dir}"
556        classes="${product.jar}"/>        classes="${product.jar}">
557          <javac-elements>
558            <compilerarg value="-Werror"/>
559          </javac-elements>
560        </run-tck-tests>
561    </target>    </target>
562    
563    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 539  Line 574 
574      </antcall>      </antcall>
575    </target>    </target>
576    
577      <target name="tck-security-manager"
578              description="Runs tck with a security manager">
579        <antcall target="tck">
580          <param name="jsr166.useSecurityManager" value="true"/>
581        </antcall>
582      </target>
583    
584    <target name="jtreg"    <target name="jtreg"
585            depends="jar"            depends="jar"
586            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 592 
592    
593    <target name="test"    <target name="test"
594            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
595            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
596    
597  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
598    
# Line 562  Line 603 
603    
604  <!--   </target> -->  <!--   </target> -->
605    
606  <!--   <target name="test89" -->    <target name="test910"
607  <!--           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">
608    
609  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
610  <!--     <antcall target="test"> -->      <antcall target="test">
611  <!--       <param name="build.main.java.version" value="8"/> -->        <param name="build.main.java.version" value="9"/>
612  <!--       <param name="build.main.javac" value="${javac8}"/> -->      </antcall>
 <!--     </antcall> -->  
613    
614  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
615  <!--     <antcall target="test"> -->      <antcall target="test">
616  <!--       <param name="build.main.java.version" value="9"/> -->        <param name="build.main.java.version" value="10"/>
617  <!--       <param name="build.main.javac" value="${javac9}"/> -->      </antcall>
 <!--     </antcall> -->  
618    
619  <!--   </target> -->      <!-- Clean up to avoid obscure wrong class file version bugs -->
620        <antcall target="clean"/>
621    
622      </target>
623    
624    
625    
626    <target name="configure-compiler">    <target name="configure-compiler">
627      <fail message="ant version too old">      <fail message="ant version too old">
628        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
629      </fail>      </fail>
630    
631      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 619  Line 659 
659        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
660             source="${build.sourcelevel}"             source="${build.sourcelevel}"
661             target="${build.sourcelevel}"             target="${build.sourcelevel}"
662             encoding="ASCII"
663               fork="true">               fork="true">
664    
665        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 630  Line 671 
671      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
672        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
673      </java>      </java>
   
674    </target>    </target>
675    
676    
677    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
678            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
679    
680      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
681    
# Line 646  Line 686 
686             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
687             includeAntRuntime="false"             includeAntRuntime="false"
688             includeJavaRuntime="false"             includeJavaRuntime="false"
689             executable="${javac9}"             encoding="ASCII"
690               executable="${build.main.javac}"
691             fork="true">             fork="true">
692    
693        <include name="*.java"/>        <include name="*.java"/>
# Line 654  Line 695 
695        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
696        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
697        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
698      </javac>      </javac>
   
699    </target>    </target>
700    
701    
# Line 679  Line 718 
718             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
719             includeAntRuntime="false"             includeAntRuntime="false"
720             includeJavaRuntime="false"             includeJavaRuntime="false"
721               encoding="ASCII"
722             executable="${javac8}"             executable="${javac8}"
723             fork="true">             fork="true">
   
724        <include name="**/*.java"/>        <include name="**/*.java"/>
725        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
726        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
727        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
728        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
729        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
730      </javac>      </javac>
731    </target>    </target>
732    
# Line 709  Line 747 
747             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
748             includeAntRuntime="false"             includeAntRuntime="false"
749             includeJavaRuntime="false"             includeJavaRuntime="false"
750               encoding="ASCII"
751             executable="${javac8}"             executable="${javac8}"
752             fork="true">             fork="true">
   
753        <include name="**/*.java"/>        <include name="**/*.java"/>
754        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
755        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
756        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
757        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
758        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
759      </javac>      </javac>
760    </target>    </target>
761    
# Line 734  Line 771 
771          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
772        </manifest>        </manifest>
773      </jar>      </jar>
   
774    </target>    </target>
775    
776    
# Line 750  Line 786 
786          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
787          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
788          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
789            <compilerarg value="-Werror"/>
790        </javac-elements>        </javac-elements>
791      </run-tck-tests>      </run-tck-tests>
792    </target>    </target>
# Line 767  Line 804 
804    
805    <target name="4jdk8-test"    <target name="4jdk8-test"
806            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
807            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
808    
809    
810    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 784  Line 820 
820               access="${build.javadoc.access}"               access="${build.javadoc.access}"
821               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
822               classpath=""               classpath=""
823                 source="8"
824               executable="${javadoc8}"               executable="${javadoc8}"
825               failonerror = "true">               failonerror = "true">
826        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 793  Line 830 
830        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
831        <arg value="-tag"/>        <arg value="-tag"/>
832        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
833        <arg value="-tag"/>  <!-- @apiNote currently unused -->
834        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
835    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
836        <arg value="-tag"/>        <arg value="-tag"/>
837        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
838        <arg value="-tag"/>        <arg value="-tag"/>
# Line 810  Line 848 
848    
849    <target name="4jdk8clean"    <target name="4jdk8clean"
850            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
851      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
852    </target>    </target>
853    
854    
# Line 828  Line 864 
864    </target>    </target>
865    
866    
867      <!-- jsr166 4jdk7 (no longer maintained) -->
868    
869    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
870      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
871    
872      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 848  Line 880 
880             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
881             includeAntRuntime="false"             includeAntRuntime="false"
882             includeJavaRuntime="false"             includeJavaRuntime="false"
883               encoding="ASCII"
884             executable="${javac7}"             executable="${javac7}"
885             fork="true">             fork="true">
886    
# Line 857  Line 890 
890        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
891        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
892        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
893      </javac>      </javac>
894    </target>    </target>
895    
896    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
897      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
898    
899      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 878  Line 907 
907             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
908             includeAntRuntime="false"             includeAntRuntime="false"
909             includeJavaRuntime="false"             includeJavaRuntime="false"
910               encoding="ASCII"
911             executable="${javac8}"             executable="${javac8}"
912             fork="true">             fork="true">
913    
# Line 887  Line 917 
917        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
918        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
919        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
920      </javac>      </javac>
921    </target>    </target>
922    
923      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
924      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
925        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
926        <manifest>        <manifest>
# Line 903  Line 928 
928          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
929        </manifest>        </manifest>
930      </jar>      </jar>
   
931    </target>    </target>
932    
933      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
934      <run-tck-tests      <run-tck-tests
935        target="7"        target="7"
936        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 928  Line 948 
948          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
949          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
950          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
951            <compilerarg value="-Werror"/>
952        </javac-elements>        </javac-elements>
953      </run-tck-tests>      </run-tck-tests>
954    </target>    </target>
955    
   
956    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
957    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
958    
959      <junit printsummary="true"      <junit printsummary="true"
960             showoutput="true"             showoutput="true"
# Line 957  Line 976 
976    
977        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
978        </test>        </test>
   
979      </junit>      </junit>
980    </target>    </target>
981    
982    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
983      <run-jtreg-tests      <run-jtreg-tests
984         target="7"         target="7"
985         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
986         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
987    </target>    </target>
988    
989      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
990    
991    <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">  
   
992      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
993      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
994    
# Line 1000  Line 1009 
1009      </javadoc>      </javadoc>
1010    </target>    </target>
1011    
1012      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1013    
1014    <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">  
   
1015      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1016    </target>    </target>
1017    
1018      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1019      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1020    </target>    </target>
1021    
1022      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1023      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1024    </target>    </target>
1025    
1026    
1027    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1028    
1029      <target name="jsr166xcompile" depends="configure-compiler">
1030      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1031    
1032      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1045  Line 1040 
1040             target="5"             target="5"
1041             includeAntRuntime="false"             includeAntRuntime="false"
1042             includeJavaRuntime="false"             includeJavaRuntime="false"
1043               encoding="ASCII"
1044             executable="${javac7}"             executable="${javac7}"
1045             fork="true">             fork="true">
   
1046        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1047        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1048        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1049        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1050        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1051      </javac>      </javac>
1052    </target>    </target>
1053    
1054      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1055      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1056        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1057        <manifest>        <manifest>
# Line 1069  Line 1059 
1059          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1060        </manifest>        </manifest>
1061      </jar>      </jar>
   
1062    </target>    </target>
1063    
1064      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1065      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1066      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1067    
# Line 1090  Line 1076 
1076               failonerror = "true">               failonerror = "true">
1077        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1078        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1079      </javadoc>      </javadoc>
1080    </target>    </target>
1081    
1082      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1083    
1084    <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">  
   
1085      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1086    </target>    </target>
1087    
1088      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1089      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1090    </target>    </target>
1091    
1092    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1093      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1094    </target>    </target>
1095    
   <!-- jsr166y -->  
   
1096    
1097    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1098    
1099      <target name="jsr166ycompile" depends="configure-compiler">
1100      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1101    
1102      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1138  Line 1110 
1110             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1111             includeAntRuntime="false"             includeAntRuntime="false"
1112             includeJavaRuntime="false"             includeJavaRuntime="false"
1113               encoding="ASCII"
1114             executable="${javac7}"             executable="${javac7}"
1115             fork="true">             fork="true">
1116    
# Line 1146  Line 1119 
1119        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1120        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1121        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1122      </javac>      </javac>
1123    </target>    </target>
1124    
1125      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1126      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1127        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1128        <manifest>        <manifest>
# Line 1162  Line 1130 
1130          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1131        </manifest>        </manifest>
1132      </jar>      </jar>
   
1133    </target>    </target>
1134    
1135      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1136      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1137      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1138    
# Line 1183  Line 1147 
1147               failonerror = "true">               failonerror = "true">
1148        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1149        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1150      </javadoc>      </javadoc>
1151    </target>    </target>
1152    
1153      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1154    
1155    <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">  
   
1156      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1157    </target>    </target>
1158    
1159      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1160      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1161    </target>    </target>
1162    
1163    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1164      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1165    </target>    </target>
1166    
1167    
1168    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1169    
1170      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1171      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1172    
1173      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1232  Line 1181 
1181             target="6"             target="6"
1182             includeAntRuntime="false"             includeAntRuntime="false"
1183             includeJavaRuntime="false"             includeJavaRuntime="false"
1184               encoding="ASCII"
1185             executable="${javac7}"             executable="${javac7}"
1186             fork="true">             fork="true">
1187    
# Line 1240  Line 1190 
1190        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1191        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1192        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1193      </javac>      </javac>
1194    </target>    </target>
1195    
1196      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1197      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1198        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1199        <manifest>        <manifest>
# Line 1256  Line 1201 
1201          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1202        </manifest>        </manifest>
1203      </jar>      </jar>
   
1204    </target>    </target>
1205    
1206      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1207      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1208      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1209    
# Line 1276  Line 1217 
1217               executable="${javadoc7}">               executable="${javadoc7}">
1218        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1219        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1220      </javadoc>      </javadoc>
1221    </target>    </target>
1222    
1223      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1224    
1225    <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">  
   
1226      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1227    </target>    </target>
1228    
1229      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1230      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1231    </target>    </target>
1232    
1233    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1234      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1235    </target>    </target>
1236    
1237    <!-- jsr166e -->  
1238      <!-- jsr166e (no longer maintained) -->
1239    
1240    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1241    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1242    
1243    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1244      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1245    
1246      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1333  Line 1261 
1261        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1262        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1263        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1264      </javac>      </javac>
1265    </target>    </target>
1266    
   <!-- jsr166e: find doclint errors -->  
1267    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1268      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1269    
1270      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1361  Line 1286 
1286        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1287        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1288        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1289      </javac>      </javac>
1290    </target>    </target>
1291    
1292      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1293      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1294        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1295        <manifest>        <manifest>
# Line 1377  Line 1297 
1297          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1298        </manifest>        </manifest>
1299      </jar>      </jar>
   
1300    </target>    </target>
1301    
1302      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1303      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1304      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1305    
# Line 1397  Line 1313 
1313               failonerror = "true">               failonerror = "true">
1314        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1315        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1316      </javadoc>      </javadoc>
1317    </target>    </target>
1318    
1319      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1320      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1321      <run-tck-tests      <run-tck-tests
1322        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1323        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1414  Line 1325 
1325        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1326    </target>    </target>
1327    
1328    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1329    
1330  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1331  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1436  Line 1346 
1346      </antcall>      </antcall>
1347    </target>    </target>
1348    
1349      <target name="jsr166e-test" depends="jsr166e-tck"/>
1350    
1351    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
   
   <target name="jsr166edist"  
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
1352    
1353    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1354      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1355    </target>    </target>
1356    
   
1357    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1358            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1359      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1360    </target>    </target>
1361    
1362    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1363      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1364    </target>    </target>
1365    
# Line 1480  Line 1380 
1380    </target>    </target>
1381    
1382    
1383    <!-- ==============================================================
1384      Experimental errorprone support - http://errorprone.info
1385    =================================================================== -->
1386      <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.1.2.jar"/>
1387      <target name="errorprone"
1388              depends="clean, configure-compiler"
1389              description="Run errorprone over jsr166 source code (experimental)">
1390    
1391        <local name="destdir"/>
1392        <property name="destdir" value="${build.classes.dir}/java.base"/>
1393        <mkdir dir="${destdir}"/>
1394    
1395        <javac srcdir="${src.dir}"
1396               destdir="${destdir}"
1397               debug="${build.debug}"
1398               debuglevel="${build.debuglevel}"
1399               deprecation="${build.deprecation}"
1400               classpath=""
1401               includeAntRuntime="false"
1402               includeJavaRuntime="false"
1403               encoding="ASCII"
1404               executable="${build.main.javac}"
1405               fork="true">
1406    
1407          <include name="**/*.java"/>
1408          <compilerarg line="-processorpath ${errorprone.jar}"/>
1409          <compilerarg value="-Xplugin:ErrorProne
1410                              -Xep:IdentityBinaryExpression:WARN
1411                              -Xep:MissingOverride:OFF
1412                              -Xep:MixedArrayDimensions:ERROR
1413                              -Xep:RemoveUnusedImports:ERROR
1414                              -Xep:ClassName:ERROR
1415                              -Xep:MultipleTopLevelClasses:ERROR
1416                              -Xep:EmptyIf:ERROR
1417                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1418                              -Xep:RedundantThrows:ERROR
1419                              -Xep:MethodCanBeStatic:WARN"/>
1420          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1421          <compilerarg value="-Xprefer:source"/>
1422          <compilerarg value="-XDignore.symbol.file=true"/>
1423          <compilerarg value="-Xlint:all"/>
1424          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1425          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1426          <compilerarg line="${build.args}"/>
1427        </javac>
1428    
1429        <jar destfile="${product.jar}">
1430          <fileset dir="${destdir}"/>
1431        </jar>
1432    
1433        <run-tck-tests
1434          target="${build.main.java.version}"
1435          workdir="${build.dir}"
1436          classes="${product.jar}">
1437          <javac-elements>
1438            <compilerarg line="-processorpath ${errorprone.jar}"/>
1439            <compilerarg value="-Xplugin:ErrorProne
1440                                -Xep:IdentityBinaryExpression:WARN
1441                                -Xep:BoxedPrimitiveConstructor:OFF
1442                                -Xep:HashtableContains:OFF
1443                                -Xep:ModifyingCollectionWithItself:OFF
1444                                -Xep:MissingOverride:OFF
1445                                -Xep:MissingFail:OFF
1446                                -Xep:JdkObsolete:OFF
1447                                -Xep:MixedArrayDimensions:ERROR
1448                                -Xep:RemoveUnusedImports:ERROR
1449                                -Xep:ClassName:ERROR
1450                                -Xep:MultipleTopLevelClasses:ERROR
1451                                -Xep:EmptyIf:ERROR
1452                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1453                                -Xep:RedundantThrows:ERROR
1454                                -Xep:MethodCanBeStatic:WARN"/>
1455            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1456          </javac-elements>
1457        </run-tck-tests>
1458      </target>
1459    
1460      <!-- ant errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1461      <target name="errorprone-jtreg"
1462              depends="jar"
1463              description="Run errorprone over jtreg tests (experimental)">
1464    
1465        <run-jtreg-tests
1466           target="${build.main.java.version}"
1467           workdir="${build.dir}"
1468           classes="${product.jar}"
1469           verbose="all">
1470          <jtreg-elements>
1471            <arg value="-javacoption:-processorpath"/>
1472            <arg value="-javacoption:${errorprone.jar}"/>
1473            <arg value="-javacoption:-Xplugin:ErrorProne
1474                                -Xep:IdentityBinaryExpression:WARN
1475                                -Xep:BoxedPrimitiveConstructor:OFF
1476                                -Xep:HashtableContains:OFF
1477                                -Xep:ModifyingCollectionWithItself:OFF
1478                                -Xep:MissingOverride:OFF
1479                                -Xep:JdkObsolete:OFF
1480                                -Xep:NonAtomicVolatileUpdate:OFF
1481                                -Xep:MixedArrayDimensions:ERROR
1482                                -Xep:RemoveUnusedImports:ERROR
1483                                -Xep:ClassName:ERROR
1484                                -Xep:MultipleTopLevelClasses:ERROR
1485                                -Xep:EmptyIf:ERROR
1486                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1487                                -Xep:RedundantThrows:ERROR
1488                                -Xep:MethodCanBeStatic:WARN"/>
1489          </jtreg-elements>
1490        </run-jtreg-tests>
1491      </target>
1492    
1493    
1494    <!-- ==============================================================
1495      Running guava tests against jsr166 code
1496    =================================================================== -->
1497    
1498    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1499    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1500    <!-- <property name="guava.version" value="21.0"/> -->
1501    
1502    <!-- HOWTO debug print a path id -->
1503    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1504    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1505    
1506    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1507    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1508    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1509    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1510    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1511    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1512    
1513    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1514    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1515    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1516    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1517    
1518    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1519    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1520    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1521    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1522    
1523    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1524    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1525    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1526    
1527      <target name="init-ivy">
1528        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1529             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1530        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1531                 classpath="${build.dir}/ivy.jar"/>
1532      </target>
1533    
1534      <target name="guava-tests" depends="jar, init-ivy"
1535              description="Guava tests run against jsr166 collections">
1536        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1537        <mkdir dir="${guava.dir}"/>
1538        <ivy:retrieve pathid="guava.testlib.classpath"
1539          type="jar,bundle" inline="true" conf="default,master"
1540          pattern="${guava.dir}/[artifact].[ext]"
1541          organisation="com.google.guava" module="guava-testlib"/>
1542        <property name="guava.version" value="21.0"/>
1543        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1544             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1545        <junit printsummary="true" showoutput="true" haltonfailure="true"
1546               jvm="${build.main.java}" fork="true">
1547          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1548          <formatter type="brief"/>
1549          <classpath>
1550            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1551            <path refid="guava.testlib.classpath"/>
1552          </classpath>
1553    
1554          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1555          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1556        </junit>
1557      </target>
1558    
1559  </project>  </project>

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

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8