[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.227, Sat Dec 17 22:18:25 2016 UTC revision 1.277, Wed Sep 26 16:11:08 2018 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage"  <project name="jsr166" default="usage"
2    xmlns:if="ant:if" xmlns:unless="ant:unless">    xmlns:if="ant:if"
3      xmlns:unless="ant:unless"
4      xmlns:ivy="antlib:org.apache.ivy.ant">
5    
6    <description>    <description>
7  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 17  Line 19 
19    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
20    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
21    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
   $HOME/jdk/jdk7  
22    $HOME/jdk/jdk8    $HOME/jdk/jdk8
23    $HOME/jdk/jdk9    $HOME/jdk/jdk9
24      $HOME/jdk/jdk10
25      $HOME/jdk/jdk11
26      $HOME/jdk/jdk12
27    where each of the above is a JDK or a symlink to same, and    where each of the above is a JDK or a symlink to same, and
   $HOME/jdk/src/jdk6  
   $HOME/jdk/src/jdk7  
28    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
29    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
30      $HOME/jdk/src/jdk10
31      $HOME/jdk/src/jdk11
32      $HOME/jdk/src/jdk12
33    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
34    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
35    
36    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
37    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
38    for $N in 6 7 8 9 ...    for $N in 8 9 10 ...
39    
40    As of 2016-03, the sources in src/main are for jdk9+ only.  The "docs"    As of 2016-03, the sources in src/main are for jdk9+ only.
   target is currently broken.  
41  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
42    </description>    </description>
43    
# Line 103  Line 106 
106      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
107        unless:set="have.java.base"/>        unless:set="have.java.base"/>
108      <local name="modules"/>      <local name="modules"/>
109      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/>
110      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
111      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
112      <path id="bootclasspath@{v}" unless:set="modules">      <path id="bootclasspath@{v}" unless:set="modules">
# Line 133  Line 136 
136    <defjdklocations v="7"/>    <defjdklocations v="7"/>
137    <defjdklocations v="8"/>    <defjdklocations v="8"/>
138    <defjdklocations v="9"/>    <defjdklocations v="9"/>
139      <defjdklocations v="10"/>
140      <defjdklocations v="11"/>
141      <defjdklocations v="12"/>
142    
143    <!-- Source locations -->    <!-- Source locations -->
144    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 142  Line 148 
148    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
149    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
150    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
151      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
152      <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
153      <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
154    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
155    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
156    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
# Line 181  Line 190 
190    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
191    
192    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
193    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
194    <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"/>
195    <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"/>
196    <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"/>
197    <!-- 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"/>
198    <!-- <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"/>
199    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>    <property name="java10.docroot.url" value="https://docs.oracle.com/javase/10/docs"/>
200      <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
201      <!-- The location of jdk early access docs (RIP) -->
202      <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
203      <!-- <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/> -->
204      <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
205      <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/>
206    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
207    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java.docroot.url"   value="${java11.docroot.url}"/>
208    
209    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
210    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 197  Line 212 
212    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
213    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
214    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
215      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
216      <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
217      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
218    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
219    
220    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 229  Line 247 
247    
248      <local name="modules"/>      <local name="modules"/>
249      <condition property="modules">      <condition property="modules">
250        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
251        </condition>
252    
253        <local name="use-doclint"/>
254        <condition property="use-doclint">
255          <not> <equals arg1="@{target}" arg2="7"/> </not>
256      </condition>      </condition>
257    
258      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
# Line 251  Line 274 
274        <include name="*.java"/>        <include name="*.java"/>
275        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
276        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
277          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
278        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
279        <compilerarg line="--patch-module java.base=@{classes}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
280        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
281        <javac-elements/>        <javac-elements/>
282    
# Line 263  Line 287 
287            jvm="${java@{target}}"            jvm="${java@{target}}"
288            fork="true">            fork="true">
289          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
290          <jvmarg line="--patch-module java.base=@{classes}" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
291          <jvmarg line="--add-opens java.base/java.util=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
292          <jvmarg line="--add-opens java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
293          <jvmarg line="--add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
294          <jvmarg line="--add-opens java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>          <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
295            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
296          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
297          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
298          <jvmarg line="${vmoptions}" if:set="vmoptions"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
# Line 289  Line 314 
314    </macrodef>    </macrodef>
315    
316    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
317    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
318      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
319        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
320      </patternset>    <macrodef name="defjtregtests">
321    </fileset>      <attribute name="v"/>
322        <sequential>
323    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
324      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
325        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
326      </patternset>      </patternset>
327    </fileset>    </fileset>
328        </sequential>
329      </macrodef>
330    
331    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="12"/>
332      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="11"/>
333        <include name="**/*.java"/>    <defjtregtests v="10"/>
334      </patternset>    <defjtregtests v="9"/>
335    </fileset>    <defjtregtests v="8"/>
336      <defjtregtests v="7"/>
337    
338    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
339    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
340    
341    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
342      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
     <attribute name="source" default="7"/>  
343      <attribute name="target"/>      <attribute name="target"/>
344      <attribute name="workdir"/>      <attribute name="workdir"/>
345      <attribute name="classes"/>      <attribute name="classes"/>
346        <attribute name="verbose" default="${jtreg.verbose}"/>
347      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
348        <element name="jtreg-elements" optional="true"/>
349    
350      <sequential>      <sequential>
351    
# Line 326  Line 354 
354    
355      <local name="modules"/>      <local name="modules"/>
356      <condition property="modules">      <condition property="modules">
357        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
358      </condition>      </condition>
359    
360      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
# Line 335  Line 363 
363             workDir="@{workdir}/JTwork">             workDir="@{workdir}/JTwork">
364        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
365        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
366        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
367        <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
368        <arg value="-agentvm"/>        <arg value="-agentvm"/>
369        <arg value="-noreport"/>        <arg value="-noreport"/>
370        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:@{verbose}"/>
371        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
372        <arg value="-automatic"/>        <arg value="-automatic"/>
373        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
374        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
375        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
376          <jtreg-elements/>
377      </jtreg>      </jtreg>
378      </sequential>      </sequential>
379    </macrodef>    </macrodef>
# Line 361  Line 390 
390    <!-- Main targets -->    <!-- Main targets -->
391    
392    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="9"/>
393    <property name="build.main.javac" value="${javac9}"/>    <!-- Workaround "no nested properties in ant" -->
394      <macrodef name="define-build-main-properties">
395        <attribute name="v"/>
396        <sequential>
397          <property name="build.main.java"    value="${java@{v}}"/>
398          <property name="build.main.javac"   value="${javac@{v}}"/>
399          <!-- Force javadoc version to be at least 10,
400               so we can use override-methods=summary -->
401          <condition property="build.main.javadoc"
402                     value="${javadoc11}"
403                     else="${javadoc@{v}}">
404            <equals arg1="@{v}" arg2="9"/>
405          </condition>
406        </sequential>
407      </macrodef>
408      <define-build-main-properties v="${build.main.java.version}"/>
409    
410    <target name="dists"    <target name="dists"
411            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
412            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
413              <!--
414                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
415              -->
416    
417    <target name="compile"    <target name="compile"
418            depends="configure-compiler"            depends="configure-compiler"
419            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
420    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
421      <local name="destdir"/>      <local name="destdir"/>
422      <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>      <property name="destdir" value="${build.classes.dir}/java.base"/>
     <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>  
423    
424      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
425    
# Line 398  Line 436 
436             fork="true">             fork="true">
437    
438        <include name="**/*.java"/>        <include name="**/*.java"/>
439        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
440        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
441        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
442        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
443          <compilerarg line="--doclint-format html5"/>
444          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
445        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
446        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
447        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
448    
# Line 447  Line 486 
486               access="${build.javadoc.access}"               access="${build.javadoc.access}"
487               sourcepath="${src.dir}"               sourcepath="${src.dir}"
488               classpath=""               classpath=""
489               executable="${javadoc9}">               source="9"
490                 executable="${build.main.javadoc}">
491        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
492          <include name="**/*.java"/>          <include name="**/*.java"/>
493        </fileset>        </fileset>
494        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
495        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
496        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
497        <arg value="-Xmodule:java.base"/>        <arg value="-html5"/>
498        <arg value="-tag"/>        <arg value="--patch-module=java.base=${src.dir}"/>
499        <arg value="${javadoc.jls.option}"/>        <arg value="--override-methods=summary"/>
500  <!-- @apiNote currently unused -->        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
501  <!--       <arg value="-tag"/> -->        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
502  <!--       <arg value="apiNote:a:API Note:"/> -->        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
503        <arg value="-tag"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
       <arg value="implSpec:a:Implementation Requirements:"/>  
       <arg value="-tag"/>  
       <arg value="implNote:a:Implementation Note:"/>  
504  <!-- tags added in jdk9: currently unused -->  <!-- tags added in jdk9: currently unused -->
505  <!--       <arg value="-tag"/> -->  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
506  <!--       <arg value="revised:X"/> -->  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
 <!--       <arg value="-tag"/> -->  
 <!--       <arg value="spec:X"/> -->  
507      </javadoc>      </javadoc>
508    </target>    </target>
509    
# Line 502  Line 537 
537    
538    <target name="clean"    <target name="clean"
539            description="Removes all build products">            description="Removes all build products">
   
540      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
541    </target>    </target>
542    
543    
544    <target name="dist-clean"    <target name="dist-clean"
545            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
546      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
547      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
548    </target>    </target>
549    
550    
# Line 534  Line 565 
565      <run-tck-tests      <run-tck-tests
566        target="${build.main.java.version}"        target="${build.main.java.version}"
567        workdir="${build.dir}"        workdir="${build.dir}"
568        classes="${product.jar}"/>        classes="${product.jar}">
569          <javac-elements>
570            <compilerarg value="-Werror"/>
571          </javac-elements>
572        </run-tck-tests>
573    </target>    </target>
574    
575    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 569  Line 604 
604    
605    <target name="test"    <target name="test"
606            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
607            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
608    
609  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
610    
# Line 581  Line 615 
615    
616  <!--   </target> -->  <!--   </target> -->
617    
618  <!--   <target name="test89" -->    <target name="test9101112"
619  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->            description="Runs tck and jtreg tests for src/main for multiple java versions">
620    
621  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
622  <!--     <antcall target="test"> -->      <antcall target="test">
623  <!--       <param name="build.main.java.version" value="8"/> -->        <param name="build.main.java.version" value="9"/>
624  <!--       <param name="build.main.javac" value="${javac8}"/> -->      </antcall>
 <!--     </antcall> -->  
625    
626  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
627  <!--     <antcall target="test"> -->      <antcall target="test">
628  <!--       <param name="build.main.java.version" value="9"/> -->        <param name="build.main.java.version" value="10"/>
629  <!--       <param name="build.main.javac" value="${javac9}"/> -->      </antcall>
 <!--     </antcall> -->  
630    
631  <!--   </target> -->      <antcall target="clean"/>
632        <antcall target="test">
633          <param name="build.main.java.version" value="11"/>
634        </antcall>
635    
636        <antcall target="clean"/>
637        <antcall target="test">
638          <param name="build.main.java.version" value="12"/>
639        </antcall>
640    
641        <!-- Clean up to avoid obscure wrong class file version bugs -->
642        <antcall target="clean"/>
643    
644      </target>
645    
646    
647    
648    <target name="configure-compiler">    <target name="configure-compiler">
649      <fail message="ant version too old">      <fail message="ant version too old">
650        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
651      </fail>      </fail>
652    
653      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 650  Line 693 
693      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
694        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
695      </java>      </java>
   
696    </target>    </target>
697    
698    
699    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
700            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
701    
702      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
703    
# Line 667  Line 709 
709             includeAntRuntime="false"             includeAntRuntime="false"
710             includeJavaRuntime="false"             includeJavaRuntime="false"
711             encoding="ASCII"             encoding="ASCII"
712             executable="${javac9}"             executable="${build.main.javac}"
713             fork="true">             fork="true">
714    
715        <include name="*.java"/>        <include name="*.java"/>
# Line 675  Line 717 
717        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
718        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
719        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
720      </javac>      </javac>
   
721    </target>    </target>
722    
723    
# Line 703  Line 743 
743             encoding="ASCII"             encoding="ASCII"
744             executable="${javac8}"             executable="${javac8}"
745             fork="true">             fork="true">
   
746        <include name="**/*.java"/>        <include name="**/*.java"/>
747        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
748        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
749        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
750        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
751        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
752      </javac>      </javac>
753    </target>    </target>
754    
# Line 734  Line 772 
772             encoding="ASCII"             encoding="ASCII"
773             executable="${javac8}"             executable="${javac8}"
774             fork="true">             fork="true">
   
775        <include name="**/*.java"/>        <include name="**/*.java"/>
776        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
777        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
778        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
779        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
780        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
781      </javac>      </javac>
782    </target>    </target>
783    
# Line 757  Line 793 
793          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
794        </manifest>        </manifest>
795      </jar>      </jar>
   
796    </target>    </target>
797    
798    
# Line 773  Line 808 
808          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
809          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
810          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
811            <compilerarg value="-Werror"/>
812        </javac-elements>        </javac-elements>
813      </run-tck-tests>      </run-tck-tests>
814    </target>    </target>
# Line 790  Line 826 
826    
827    <target name="4jdk8-test"    <target name="4jdk8-test"
828            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
829            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
830    
831    
832    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 807  Line 842 
842               access="${build.javadoc.access}"               access="${build.javadoc.access}"
843               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
844               classpath=""               classpath=""
845                 source="8"
846               executable="${javadoc8}"               executable="${javadoc8}"
847               failonerror = "true">               failonerror = "true">
848        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 814  Line 850 
850        </fileset>        </fileset>
851        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
852        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
853        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
854        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
855  <!-- @apiNote currently unused -->        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
856  <!--       <arg value="-tag"/> -->  <!-- @apiNote tag currently unused -->
857  <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->  <!--  <arg value="-tag"/> <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
       <arg value="-tag"/>  
       <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>  
       <arg value="-tag"/>  
       <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  
858      </javadoc>      </javadoc>
859    </target>    </target>
860    
# Line 834  Line 866 
866    
867    <target name="4jdk8clean"    <target name="4jdk8clean"
868            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
869      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
870    </target>    </target>
871    
872    
# Line 852  Line 882 
882    </target>    </target>
883    
884    
885      <!-- jsr166 4jdk7 (no longer maintained) -->
886    
887    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
888      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
889    
890      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 882  Line 908 
908        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
909        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
910        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
911      </javac>      </javac>
912    </target>    </target>
913    
914    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
915      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
916    
917      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 913  Line 935 
935        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
936        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
937        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
938      </javac>      </javac>
939    </target>    </target>
940    
941      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
942      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
943        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
944        <manifest>        <manifest>
# Line 929  Line 946 
946          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
947        </manifest>        </manifest>
948      </jar>      </jar>
   
949    </target>    </target>
950    
951      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
952      <run-tck-tests      <run-tck-tests
953        target="7"        target="7"
954        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 954  Line 966 
966          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
967          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
968          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
969            <compilerarg value="-Werror"/>
970        </javac-elements>        </javac-elements>
971      </run-tck-tests>      </run-tck-tests>
972    </target>    </target>
973    
   
974    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
975    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
976    
977      <junit printsummary="true"      <junit printsummary="true"
978             showoutput="true"             showoutput="true"
# Line 983  Line 994 
994    
995        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
996        </test>        </test>
   
997      </junit>      </junit>
998    </target>    </target>
999    
1000    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
1001      <run-jtreg-tests      <run-jtreg-tests
1002         target="7"         target="7"
1003         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
1004         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
1005    </target>    </target>
1006    
1007      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1008    
1009    <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">  
   
1010      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
1011      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
1012    
# Line 1026  Line 1027 
1027      </javadoc>      </javadoc>
1028    </target>    </target>
1029    
1030      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1031    
1032    <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">  
   
1033      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1034    </target>    </target>
1035    
1036      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1037      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1038    </target>    </target>
1039    
1040      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1041      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1042    </target>    </target>
1043    
1044    
1045    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1046    
1047      <target name="jsr166xcompile" depends="configure-compiler">
1048      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1049    
1050      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1074  Line 1061 
1061             encoding="ASCII"             encoding="ASCII"
1062             executable="${javac7}"             executable="${javac7}"
1063             fork="true">             fork="true">
   
1064        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1065        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1066        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1067        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1068        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1069      </javac>      </javac>
1070    </target>    </target>
1071    
1072      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1073      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1074        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1075        <manifest>        <manifest>
# Line 1096  Line 1077 
1077          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1078        </manifest>        </manifest>
1079      </jar>      </jar>
   
1080    </target>    </target>
1081    
1082      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1083      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1084      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1085    
# Line 1117  Line 1094 
1094               failonerror = "true">               failonerror = "true">
1095        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1096        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1097      </javadoc>      </javadoc>
1098    </target>    </target>
1099    
1100      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1101    
1102    <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">  
   
1103      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1104    </target>    </target>
1105    
1106      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1107      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1108    </target>    </target>
1109    
1110    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1111      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1112    </target>    </target>
1113    
   <!-- jsr166y -->  
   
1114    
1115    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1116    
1117      <target name="jsr166ycompile" depends="configure-compiler">
1118      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1119    
1120      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1174  Line 1137 
1137        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1138        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1139        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1140      </javac>      </javac>
1141    </target>    </target>
1142    
1143      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1144      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1145        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1146        <manifest>        <manifest>
# Line 1190  Line 1148 
1148          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1149        </manifest>        </manifest>
1150      </jar>      </jar>
   
1151    </target>    </target>
1152    
1153      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1154      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1155      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1156    
# Line 1211  Line 1165 
1165               failonerror = "true">               failonerror = "true">
1166        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1167        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1168      </javadoc>      </javadoc>
1169    </target>    </target>
1170    
1171      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1172    
1173    <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">  
   
1174      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1175    </target>    </target>
1176    
1177      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1178      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1179    </target>    </target>
1180    
1181    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1182      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1183    </target>    </target>
1184    
1185    
1186    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1187    
1188      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1189      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1190    
1191      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1269  Line 1208 
1208        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1209        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1210        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1211      </javac>      </javac>
1212    </target>    </target>
1213    
1214      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1215      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1216        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1217        <manifest>        <manifest>
# Line 1285  Line 1219 
1219          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1220        </manifest>        </manifest>
1221      </jar>      </jar>
   
1222    </target>    </target>
1223    
1224      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1225      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1226      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1227    
# Line 1305  Line 1235 
1235               executable="${javadoc7}">               executable="${javadoc7}">
1236        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1237        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1238      </javadoc>      </javadoc>
1239    </target>    </target>
1240    
1241      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1242    
1243    <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">  
   
1244      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1245    </target>    </target>
1246    
1247      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1248      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1249    </target>    </target>
1250    
1251    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1252      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1253    </target>    </target>
1254    
1255    <!-- jsr166e -->  
1256      <!-- jsr166e (no longer maintained) -->
1257    
1258    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1259    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1260    
1261    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1262      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1263    
1264      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1362  Line 1279 
1279        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1280        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1281        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1282      </javac>      </javac>
1283    </target>    </target>
1284    
   <!-- jsr166e: find doclint errors -->  
1285    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1286      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1287    
1288      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1390  Line 1304 
1304        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1305        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1306        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1307      </javac>      </javac>
1308    </target>    </target>
1309    
1310      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1311      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1312        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1313        <manifest>        <manifest>
# Line 1406  Line 1315 
1315          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1316        </manifest>        </manifest>
1317      </jar>      </jar>
   
1318    </target>    </target>
1319    
1320      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1321      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1322      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1323    
# Line 1426  Line 1331 
1331               failonerror = "true">               failonerror = "true">
1332        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1333        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1334      </javadoc>      </javadoc>
1335    </target>    </target>
1336    
1337      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1338      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1339      <run-tck-tests      <run-tck-tests
1340        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1341        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1443  Line 1343 
1343        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1344    </target>    </target>
1345    
1346    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1347    
1348  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1349  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1465  Line 1364 
1364      </antcall>      </antcall>
1365    </target>    </target>
1366    
1367      <target name="jsr166e-test" depends="jsr166e-tck"/>
1368    
1369    <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"/>  
   
1370    
1371    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1372      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1373    </target>    </target>
1374    
   
1375    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1376            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1377      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1378    </target>    </target>
1379    
1380    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1381      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1382    </target>    </target>
1383    
1384    
1385  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1386    
1387    <target name="lint">  <!--   <target name="lint"> -->
1388      <antcall target="dists">  <!--     <antcall target="dists"> -->
1389        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1390      </antcall>  <!--     </antcall> -->
1391    </target>  <!--   </target> -->
1392    
1393  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1394    <target name="lint-private">    <target name="doclint-private">
1395      <antcall target="dist">      <antcall target="dist">
1396        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1397      </antcall>      </antcall>
1398    </target>    </target>
1399    
1400    
1401    <!-- ==============================================================
1402      Experimental errorprone support - https://errorprone.info
1403    =================================================================== -->
1404      <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.3.1.jar"/>
1405      <property name="errorprone.jsr166.user.flags" value=""/>
1406      <property name="errorprone.jsr166.flags"
1407                value="-Xep:HashtableContains:OFF
1408                       -Xep:JdkObsolete:OFF
1409                       -Xep:MissingOverride:OFF
1410                       -Xep:MissingFail:OFF
1411                       -Xep:MixedArrayDimensions:ERROR
1412                       -Xep:RemoveUnusedImports:ERROR
1413                       -Xep:EmptyIf:ERROR
1414                       -Xep:MultipleTopLevelClasses:ERROR
1415                       -Xep:ClassName:ERROR
1416                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1417                       -Xep:RedundantThrows:ERROR
1418                       -Xep:IdentityBinaryExpression:WARN
1419                       -Xep:MethodCanBeStatic:WARN
1420                       ${errorprone.jsr166.user.flags}"/>
1421      <!-- -Xep:WildcardImport:ERROR -->
1422      <property name="errorprone.jsr166.test.flags"
1423                value="-Xep:StringSplitter:OFF
1424                       -Xep:BoxedPrimitiveConstructor:OFF
1425                       -Xep:ModifyingCollectionWithItself:OFF"/>
1426      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1427      <target name="errorprone"
1428              depends="clean, configure-compiler"
1429              description="Run errorprone over jsr166 source code (experimental)">
1430    
1431        <local name="destdir"/>
1432        <property name="destdir" value="${build.classes.dir}/java.base"/>
1433        <mkdir dir="${destdir}"/>
1434    
1435        <javac srcdir="${src.dir}"
1436               destdir="${destdir}"
1437               debug="${build.debug}"
1438               debuglevel="${build.debuglevel}"
1439               deprecation="${build.deprecation}"
1440               classpath=""
1441               includeAntRuntime="false"
1442               includeJavaRuntime="false"
1443               encoding="ASCII"
1444               executable="${build.main.javac}"
1445               fork="true">
1446    
1447          <include name="**/*.java"/>
1448          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1449          <compilerarg value="-J--illegal-access=permit"/>
1450          <compilerarg value="-XDcompilePolicy=simple"/>
1451          <compilerarg line="-processorpath ${errorprone.jar}"/>
1452          <compilerarg value="-Xplugin:ErrorProne
1453                              ${errorprone.jsr166.flags}"/>
1454          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1455          <compilerarg value="-Xprefer:source"/>
1456          <compilerarg value="-XDignore.symbol.file=true"/>
1457          <compilerarg value="-Xlint:all"/>
1458          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1459          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1460          <compilerarg line="${build.args}"/>
1461        </javac>
1462    
1463        <jar destfile="${product.jar}">
1464          <fileset dir="${destdir}"/>
1465        </jar>
1466    
1467        <run-tck-tests
1468          target="${build.main.java.version}"
1469          workdir="${build.dir}"
1470          classes="${product.jar}">
1471          <javac-elements>
1472            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1473            <compilerarg value="-J--illegal-access=permit"/>
1474            <compilerarg value="-XDcompilePolicy=simple"/>
1475            <compilerarg line="-processorpath ${errorprone.jar}"/>
1476            <compilerarg value="-Xplugin:ErrorProne
1477                                ${errorprone.jsr166.flags}
1478                                ${errorprone.jsr166.test.flags}"/>
1479            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1480          </javac-elements>
1481        </run-tck-tests>
1482      </target>
1483    
1484      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1485      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1486      <target name="errorprone-jtreg"
1487              depends="jar"
1488              description="Run errorprone over jtreg tests (experimental)">
1489    
1490        <run-jtreg-tests
1491           target="${build.main.java.version}"
1492           workdir="${build.dir}"
1493           classes="${product.jar}"
1494           verbose="all">
1495          <jtreg-elements>
1496            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1497            <arg value="-javacoption:-processorpath"/>
1498            <arg value="-javacoption:${errorprone.jar}"/>
1499            <arg value="-javacoption:-Xplugin:ErrorProne
1500                                ${errorprone.jsr166.flags}
1501                                ${errorprone.jsr166.test.flags}
1502                                -Xep:MultipleTopLevelClasses:WARN
1503                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1504          </jtreg-elements>
1505        </run-jtreg-tests>
1506      </target>
1507    
1508    
1509    <!-- ==============================================================
1510      Running guava tests against jsr166 code
1511    =================================================================== -->
1512    
1513    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1514    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1515    <!-- <property name="guava.version" value="21.0"/> -->
1516    
1517    <!-- HOWTO debug print a path id -->
1518    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1519    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1520    
1521    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1522    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1523    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1524    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1525    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1526    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1527    
1528    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1529    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1530    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1531    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1532    
1533    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1534    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1535    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1536    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1537    
1538    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1539    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1540    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1541    
1542      <target name="init-ivy">
1543        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1544             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1545        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1546                 classpath="${build.dir}/ivy.jar"/>
1547      </target>
1548    
1549      <target name="guava-tests" depends="jar, init-ivy"
1550              description="Guava tests run against jsr166 collections">
1551        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1552        <mkdir dir="${guava.dir}"/>
1553        <ivy:retrieve pathid="guava.testlib.classpath"
1554          type="jar,bundle" inline="true" conf="default,master"
1555          pattern="${guava.dir}/[artifact].[ext]"
1556          organisation="com.google.guava" module="guava-testlib"/>
1557        <property name="guava.version" value="21.0"/>
1558        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1559             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1560        <junit printsummary="true" showoutput="true" haltonfailure="true"
1561               jvm="${build.main.java}" fork="true">
1562          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1563          <formatter type="brief"/>
1564          <classpath>
1565            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1566            <path refid="guava.testlib.classpath"/>
1567          </classpath>
1568    
1569          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1570          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1571        </junit>
1572      </target>
1573    
1574  </project>  </project>

Legend:
Removed from v.1.227  
changed lines
  Added in v.1.277

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8