[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.224, Thu Nov 24 01:58:04 2016 UTC revision 1.283, Wed Oct 24 22:31:14 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}"/>    <!-- But pin to jdk 10 until fix for -->
208      <!-- 8211194: javadoc -link doesn't take module path into consideration -->
209      <property name="java.docroot.url"   value="${java10.docroot.url}"/>
210    
211    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
212    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 197  Line 214 
214    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
215    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
216    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
217      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
218      <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
219      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
220    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
221    
222    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 229  Line 249 
249    
250      <local name="modules"/>      <local name="modules"/>
251      <condition property="modules">      <condition property="modules">
252        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
253        </condition>
254    
255        <local name="use-doclint"/>
256        <condition property="use-doclint">
257          <not> <equals arg1="@{target}" arg2="7"/> </not>
258      </condition>      </condition>
259    
260      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
# Line 251  Line 276 
276        <include name="*.java"/>        <include name="*.java"/>
277        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
278        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
279          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
280        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
281        <compilerarg line="--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
282        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
283        <javac-elements/>        <javac-elements/>
284    
# Line 263  Line 289 
289            jvm="${java@{target}}"            jvm="${java@{target}}"
290            fork="true">            fork="true">
291          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
292          <jvmarg line="--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
293            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
294            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
295            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
296            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
297            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
298          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
299          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
300          <jvmarg line="${vmoptions}" if:set="vmoptions"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
# Line 285  Line 316 
316    </macrodef>    </macrodef>
317    
318    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
319    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
320      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
321        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
322      </patternset>    <macrodef name="defjtregtests">
323    </fileset>      <attribute name="v"/>
324        <sequential>
325    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
326      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
327        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
328      </patternset>      </patternset>
329    </fileset>    </fileset>
330        </sequential>
331      </macrodef>
332    
333    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="12"/>
334      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="11"/>
335        <include name="**/*.java"/>    <defjtregtests v="10"/>
336      </patternset>    <defjtregtests v="9"/>
337    </fileset>    <defjtregtests v="8"/>
338      <defjtregtests v="7"/>
339    
340    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
341    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
342    
343    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
344      <!-- 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"/>  
345      <attribute name="target"/>      <attribute name="target"/>
346      <attribute name="workdir"/>      <attribute name="workdir"/>
347      <attribute name="classes"/>      <attribute name="classes"/>
348        <attribute name="verbose" default="${jtreg.verbose}"/>
349      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
350        <element name="jtreg-elements" optional="true"/>
351    
352      <sequential>      <sequential>
353    
# Line 324  Line 356 
356    
357      <local name="modules"/>      <local name="modules"/>
358      <condition property="modules">      <condition property="modules">
359        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
360      </condition>      </condition>
361    
362      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
# Line 333  Line 365 
365             workDir="@{workdir}/JTwork">             workDir="@{workdir}/JTwork">
366        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
367        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
368        <arg value="-javacoptions:--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
369        <arg value="-vmoptions:--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>        <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
370        <arg value="-agentvm"/>        <arg value="-agentvm"/>
371        <arg value="-noreport"/>        <arg value="-noreport"/>
372        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:@{verbose}"/>
373        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
374        <arg value="-automatic"/>        <arg value="-automatic"/>
375        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
376        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
377        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
378          <jtreg-elements/>
379      </jtreg>      </jtreg>
380      </sequential>      </sequential>
381    </macrodef>    </macrodef>
# Line 358  Line 391 
391    
392    <!-- Main targets -->    <!-- Main targets -->
393    
394    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="11"/>
395    <property name="build.main.javac" value="${javac9}"/>    <!-- Workaround "no nested properties in ant" -->
396      <macrodef name="define-build-main-properties">
397        <attribute name="v"/>
398        <sequential>
399          <property name="build.main.java"    value="${java@{v}}"/>
400          <property name="build.main.javac"   value="${javac@{v}}"/>
401          <!-- Force javadoc version to be at least 10, so we can use override-methods=summary -->
402          <!-- Force javadoc version to be at least 12, due to JDK-8202628 -->
403          <condition property="build.main.javadoc"
404                     value="${javadoc12}"
405                     else="${javadoc@{v}}">
406            <matches pattern="^(9|10|11)$" string="@{v}"/>
407          </condition>
408        </sequential>
409      </macrodef>
410      <define-build-main-properties v="${build.main.java.version}"/>
411    
412    <target name="dists"    <target name="dists"
413            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
414            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
415              <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
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 396  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 435  Line 476 
476    
477  <!--  TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->  <!--  TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
478  <!--  TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->  <!--  TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
479    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
480    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
481    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
482      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
483               packagenames="none"               packagenames="none"
484               link="${java9.api.url}"               link="${java11.api.url}"
485               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
486               access="${build.javadoc.access}"               access="${build.javadoc.access}"
487               sourcepath="${src.dir}"               sourcepath="${src.dir}"
488               classpath=""               classpath=""
489               executable="${javadoc9}">               source="11"
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 ${java10.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="--frames"/>
500  <!-- @apiNote currently unused -->        <arg value="--override-methods=summary"/>
501  <!--       <arg value="-tag"/> -->        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
502  <!--       <arg value="apiNote:a:API Note:"/> -->        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
503        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
504        <arg value="implSpec:a:Implementation Requirements:"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
       <arg value="-tag"/>  
       <arg value="implNote:a:Implementation Note:"/>  
505  <!-- tags added in jdk9: currently unused -->  <!-- tags added in jdk9: currently unused -->
506  <!--       <arg value="-tag"/> -->  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
507  <!--       <arg value="revised:X"/> -->  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
 <!--       <arg value="-tag"/> -->  
 <!--       <arg value="spec:X"/> -->  
508      </javadoc>      </javadoc>
509    </target>    </target>
510    
# Line 473  Line 514 
514            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
515    
516    
   <target name="release"  
           depends="dist"  
           description="Puts entire CVS tree, plus distribution productions, in a jar">  
   
     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>  
   
     <jar basedir="${basedir}" destfile="${release.jar}">  
       <!-- <exclude name="build/**"/> -->  
       <exclude name="${release.jar}"/>  
       <exclude name="user.properties"/>  
       <exclude name="etc/notes/**"/>  
       <exclude name="src/emulation/**"/>  
       <exclude name="**/SyntaxTest.java"/>  
       <exclude name="**/SuperfluousAbstract.java"/>  
       <manifest>  
         <attribute name="Built-By" value="${user.name}"/>  
         <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>  
       </manifest>  
     </jar>  
   </target>  
   
   
517    <target name="clean"    <target name="clean"
518            description="Removes all build products">            description="Removes all build products">
   
519      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
520    </target>    </target>
521    
522    
523    <target name="dist-clean"    <target name="dist-clean"
524            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
525      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
526      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
527    </target>    </target>
528    
529    
# Line 529  Line 544 
544      <run-tck-tests      <run-tck-tests
545        target="${build.main.java.version}"        target="${build.main.java.version}"
546        workdir="${build.dir}"        workdir="${build.dir}"
547        classes="${product.jar}"/>        classes="${product.jar}">
548          <javac-elements>
549            <compilerarg value="-Werror"/>
550          </javac-elements>
551        </run-tck-tests>
552    </target>    </target>
553    
554    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 564  Line 583 
583    
584    <target name="test"    <target name="test"
585            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
586            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
587    
588  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
589    
# Line 576  Line 594 
594    
595  <!--   </target> -->  <!--   </target> -->
596    
597  <!--   <target name="test89" -->    <target name="test9101112"
598  <!--           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">
599    
600  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
601  <!--     <antcall target="test"> -->      <antcall target="test">
602  <!--       <param name="build.main.java.version" value="8"/> -->        <param name="build.main.java.version" value="9"/>
603  <!--       <param name="build.main.javac" value="${javac8}"/> -->        <param name="build.main.java" value="${java9}"/>
604  <!--     </antcall> -->        <param name="build.main.javac" value="${javac9}"/>
605        </antcall>
606    
607  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
608  <!--     <antcall target="test"> -->      <antcall target="test">
609  <!--       <param name="build.main.java.version" value="9"/> -->        <param name="build.main.java.version" value="10"/>
610  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="build.main.java" value="${java10}"/>
611  <!--     </antcall> -->        <param name="build.main.javac" value="${javac10}"/>
612        </antcall>
613    
614  <!--   </target> -->      <antcall target="clean"/>
615        <antcall target="test">
616          <param name="build.main.java.version" value="11"/>
617          <param name="build.main.java" value="${java11}"/>
618          <param name="build.main.javac" value="${javac11}"/>
619        </antcall>
620    
621        <antcall target="clean"/>
622        <antcall target="test">
623          <param name="build.main.java.version" value="12"/>
624          <param name="build.main.java" value="${java12}"/>
625          <param name="build.main.javac" value="${javac12}"/>
626        </antcall>
627        <antcall target="docs">
628          <param name="build.main.java.version" value="12"/>
629          <param name="build.main.java" value="${java12}"/>
630          <param name="build.main.javac" value="${javac12}"/>
631          <param name="build.main.javadoc" value="${javadoc12}"/>
632        </antcall>
633    
634        <!-- Clean up to avoid obscure wrong class file version bugs -->
635        <antcall target="clean"/>
636    
637      </target>
638    
639    
640    
641    <target name="configure-compiler">    <target name="configure-compiler">
642      <fail message="ant version too old">      <fail message="ant version too old">
643        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
644      </fail>      </fail>
645    
646      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 645  Line 686 
686      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
687        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
688      </java>      </java>
   
689    </target>    </target>
690    
691    
692    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
693            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
694    
695      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
696    
# Line 662  Line 702 
702             includeAntRuntime="false"             includeAntRuntime="false"
703             includeJavaRuntime="false"             includeJavaRuntime="false"
704             encoding="ASCII"             encoding="ASCII"
705             executable="${javac9}"             executable="${build.main.javac}"
706             fork="true">             fork="true">
707    
708        <include name="*.java"/>        <include name="*.java"/>
# Line 670  Line 710 
710        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
711        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
712        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
713      </javac>      </javac>
   
714    </target>    </target>
715    
716    
# Line 698  Line 736 
736             encoding="ASCII"             encoding="ASCII"
737             executable="${javac8}"             executable="${javac8}"
738             fork="true">             fork="true">
   
739        <include name="**/*.java"/>        <include name="**/*.java"/>
740        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
741        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
742        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
743        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
744        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
745      </javac>      </javac>
746    </target>    </target>
747    
# Line 729  Line 765 
765             encoding="ASCII"             encoding="ASCII"
766             executable="${javac8}"             executable="${javac8}"
767             fork="true">             fork="true">
   
768        <include name="**/*.java"/>        <include name="**/*.java"/>
769        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
770        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
771        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
772        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
773        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
774      </javac>      </javac>
775    </target>    </target>
776    
# Line 752  Line 786 
786          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
787        </manifest>        </manifest>
788      </jar>      </jar>
   
789    </target>    </target>
790    
791    
# Line 768  Line 801 
801          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
802          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
803          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
804            <compilerarg value="-Werror"/>
805        </javac-elements>        </javac-elements>
806      </run-tck-tests>      </run-tck-tests>
807    </target>    </target>
# Line 785  Line 819 
819    
820    <target name="4jdk8-test"    <target name="4jdk8-test"
821            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
822            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
823    
824    
825    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 802  Line 835 
835               access="${build.javadoc.access}"               access="${build.javadoc.access}"
836               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
837               classpath=""               classpath=""
838                 source="8"
839               executable="${javadoc8}"               executable="${javadoc8}"
840               failonerror = "true">               failonerror = "true">
841        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 809  Line 843 
843        </fileset>        </fileset>
844        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
845        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
846        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
847        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
848  <!-- @apiNote currently unused -->        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
849  <!--       <arg value="-tag"/> -->  <!-- @apiNote tag currently unused -->
850  <!--       <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;"/>  
851      </javadoc>      </javadoc>
852    </target>    </target>
853    
# Line 829  Line 859 
859    
860    <target name="4jdk8clean"    <target name="4jdk8clean"
861            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
862      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
863    </target>    </target>
864    
865    
# Line 847  Line 875 
875    </target>    </target>
876    
877    
878      <!-- jsr166 4jdk7 (no longer maintained) -->
879    
880    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
881      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
882    
883      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 877  Line 901 
901        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
902        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
903        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
904      </javac>      </javac>
905    </target>    </target>
906    
907    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
908      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
909    
910      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 908  Line 928 
928        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
929        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
930        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
931      </javac>      </javac>
932    </target>    </target>
933    
934      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
935      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
936        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
937        <manifest>        <manifest>
# Line 924  Line 939 
939          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
940        </manifest>        </manifest>
941      </jar>      </jar>
   
942    </target>    </target>
943    
944      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
945      <run-tck-tests      <run-tck-tests
946        target="7"        target="7"
947        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 949  Line 959 
959          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
960          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
961          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
962            <compilerarg value="-Werror"/>
963        </javac-elements>        </javac-elements>
964      </run-tck-tests>      </run-tck-tests>
965    </target>    </target>
966    
   
967    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
968    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
969    
970      <junit printsummary="true"      <junit printsummary="true"
971             showoutput="true"             showoutput="true"
# Line 978  Line 987 
987    
988        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
989        </test>        </test>
   
990      </junit>      </junit>
991    </target>    </target>
992    
993    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
994      <run-jtreg-tests      <run-jtreg-tests
995         target="7"         target="7"
996         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
997         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
998    </target>    </target>
999    
1000      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1001    
1002    <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">  
   
1003      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
1004      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
1005    
# Line 1021  Line 1020 
1020      </javadoc>      </javadoc>
1021    </target>    </target>
1022    
1023      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1024    
1025    <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">  
   
1026      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1027    </target>    </target>
1028    
1029      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1030      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1031    </target>    </target>
1032    
1033      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1034      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1035    </target>    </target>
1036    
1037    
1038    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1039    
1040      <target name="jsr166xcompile" depends="configure-compiler">
1041      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1042    
1043      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1069  Line 1054 
1054             encoding="ASCII"             encoding="ASCII"
1055             executable="${javac7}"             executable="${javac7}"
1056             fork="true">             fork="true">
   
1057        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1058        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1059        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1060        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1061        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1062      </javac>      </javac>
1063    </target>    </target>
1064    
1065      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1066      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1067        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1068        <manifest>        <manifest>
# Line 1091  Line 1070 
1070          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1071        </manifest>        </manifest>
1072      </jar>      </jar>
   
1073    </target>    </target>
1074    
1075      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1076      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1077      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1078    
# Line 1112  Line 1087 
1087               failonerror = "true">               failonerror = "true">
1088        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1089        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1090      </javadoc>      </javadoc>
1091    </target>    </target>
1092    
1093      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1094    
1095    <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">  
   
1096      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1097    </target>    </target>
1098    
1099      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1100      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1101    </target>    </target>
1102    
1103    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1104      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1105    </target>    </target>
1106    
   <!-- jsr166y -->  
1107    
1108      <!-- jsr166y (no longer maintained) -->
1109    
1110    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1111      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1112    
1113      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1169  Line 1130 
1130        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1131        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1132        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1133      </javac>      </javac>
1134    </target>    </target>
1135    
1136      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1137      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1138        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1139        <manifest>        <manifest>
# Line 1185  Line 1141 
1141          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1142        </manifest>        </manifest>
1143      </jar>      </jar>
   
1144    </target>    </target>
1145    
1146      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1147      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1148      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1149    
# Line 1206  Line 1158 
1158               failonerror = "true">               failonerror = "true">
1159        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1160        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1161      </javadoc>      </javadoc>
1162    </target>    </target>
1163    
1164      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1165    
1166    <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">  
   
1167      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1168    </target>    </target>
1169    
1170      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1171      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1172    </target>    </target>
1173    
1174    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1175      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1176    </target>    </target>
1177    
1178    
1179    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1180    
1181      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1182      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1183    
1184      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1264  Line 1201 
1201        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1202        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1203        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1204      </javac>      </javac>
1205    </target>    </target>
1206    
1207      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1208      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1209        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1210        <manifest>        <manifest>
# Line 1280  Line 1212 
1212          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1213        </manifest>        </manifest>
1214      </jar>      </jar>
   
1215    </target>    </target>
1216    
1217      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1218      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1219      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1220    
# Line 1300  Line 1228 
1228               executable="${javadoc7}">               executable="${javadoc7}">
1229        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1230        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1231      </javadoc>      </javadoc>
1232    </target>    </target>
1233    
1234      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1235    
1236    <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">  
   
1237      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1238    </target>    </target>
1239    
1240      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1241      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1242    </target>    </target>
1243    
1244    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1245      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1246    </target>    </target>
1247    
1248    <!-- jsr166e -->  
1249      <!-- jsr166e (no longer maintained) -->
1250    
1251    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1252    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1253    
1254    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1255      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1256    
1257      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1357  Line 1272 
1272        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1273        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1274        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1275      </javac>      </javac>
1276    </target>    </target>
1277    
   <!-- jsr166e: find doclint errors -->  
1278    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1279      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1280    
1281      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1385  Line 1297 
1297        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1298        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1299        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1300      </javac>      </javac>
1301    </target>    </target>
1302    
1303      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1304      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1305        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1306        <manifest>        <manifest>
# Line 1401  Line 1308 
1308          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1309        </manifest>        </manifest>
1310      </jar>      </jar>
   
1311    </target>    </target>
1312    
1313      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1314      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1315      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1316    
# Line 1421  Line 1324 
1324               failonerror = "true">               failonerror = "true">
1325        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1326        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1327      </javadoc>      </javadoc>
1328    </target>    </target>
1329    
1330      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1331      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1332      <run-tck-tests      <run-tck-tests
1333        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1334        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1438  Line 1336 
1336        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1337    </target>    </target>
1338    
1339    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1340    
1341  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1342  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1460  Line 1357 
1357      </antcall>      </antcall>
1358    </target>    </target>
1359    
1360      <target name="jsr166e-test" depends="jsr166e-tck"/>
1361    
1362    <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"/>  
1363    
1364      <target name="jsr166eclean">
   <target name="jsr166eclean"  
           description="Removes all jsr166e build products">  
1365      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1366    </target>    </target>
1367    
   
1368    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1369            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1370      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1371    </target>    </target>
1372    
1373    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1374      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1375    </target>    </target>
1376    
1377    
1378  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1379    
1380    <target name="lint">  <!--   <target name="lint"> -->
1381      <antcall target="dists">  <!--     <antcall target="dists"> -->
1382        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1383      </antcall>  <!--     </antcall> -->
1384    </target>  <!--   </target> -->
1385    
1386  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1387    <target name="lint-private">    <target name="doclint-private">
1388      <antcall target="dist">      <antcall target="dist">
1389        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1390      </antcall>      </antcall>
1391    </target>    </target>
1392    
1393    
1394    <!-- ==============================================================
1395      Experimental errorprone support - https://errorprone.info
1396    =================================================================== -->
1397      <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.3.1.jar"/>
1398      <property name="errorprone.jsr166.user.flags" value=""/>
1399      <property name="errorprone.jsr166.flags"
1400                value="-Xep:HashtableContains:OFF
1401                       -Xep:JdkObsolete:OFF
1402                       -Xep:MissingOverride:OFF
1403                       -Xep:MissingFail:OFF
1404                       -Xep:MixedArrayDimensions:ERROR
1405                       -Xep:RemoveUnusedImports:ERROR
1406                       -Xep:EmptyIf:ERROR
1407                       -Xep:MultipleTopLevelClasses:ERROR
1408                       -Xep:ClassName:ERROR
1409                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1410                       -Xep:RedundantThrows:ERROR
1411                       -Xep:IdentityBinaryExpression:WARN
1412                       -Xep:MethodCanBeStatic:WARN
1413                       ${errorprone.jsr166.user.flags}"/>
1414      <!-- -Xep:WildcardImport:ERROR -->
1415      <property name="errorprone.jsr166.test.flags"
1416                value="-Xep:StringSplitter:OFF
1417                       -Xep:BoxedPrimitiveConstructor:OFF
1418                       -Xep:ModifyingCollectionWithItself:OFF"/>
1419      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1420      <target name="errorprone"
1421              depends="clean, configure-compiler"
1422              description="Run errorprone over jsr166 source code (experimental)">
1423    
1424        <local name="destdir"/>
1425        <property name="destdir" value="${build.classes.dir}/java.base"/>
1426        <mkdir dir="${destdir}"/>
1427    
1428        <javac srcdir="${src.dir}"
1429               destdir="${destdir}"
1430               debug="${build.debug}"
1431               debuglevel="${build.debuglevel}"
1432               deprecation="${build.deprecation}"
1433               classpath=""
1434               includeAntRuntime="false"
1435               includeJavaRuntime="false"
1436               encoding="ASCII"
1437               executable="${build.main.javac}"
1438               fork="true">
1439    
1440          <include name="**/*.java"/>
1441          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1442          <compilerarg value="-J--illegal-access=permit"/>
1443          <compilerarg value="-XDcompilePolicy=simple"/>
1444          <compilerarg line="-processorpath ${errorprone.jar}"/>
1445          <compilerarg value="-Xplugin:ErrorProne
1446                              ${errorprone.jsr166.flags}"/>
1447          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1448          <compilerarg value="-Xprefer:source"/>
1449          <compilerarg value="-XDignore.symbol.file=true"/>
1450          <compilerarg value="-Xlint:all"/>
1451          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1452          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1453          <compilerarg line="${build.args}"/>
1454        </javac>
1455    
1456        <jar destfile="${product.jar}">
1457          <fileset dir="${destdir}"/>
1458        </jar>
1459    
1460        <run-tck-tests
1461          target="${build.main.java.version}"
1462          workdir="${build.dir}"
1463          classes="${product.jar}">
1464          <javac-elements>
1465            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1466            <compilerarg value="-J--illegal-access=permit"/>
1467            <compilerarg value="-XDcompilePolicy=simple"/>
1468            <compilerarg line="-processorpath ${errorprone.jar}"/>
1469            <compilerarg value="-Xplugin:ErrorProne
1470                                ${errorprone.jsr166.flags}
1471                                ${errorprone.jsr166.test.flags}"/>
1472            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1473          </javac-elements>
1474        </run-tck-tests>
1475      </target>
1476    
1477      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1478      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1479      <target name="errorprone-jtreg"
1480              depends="jar"
1481              description="Run errorprone over jtreg tests (experimental)">
1482    
1483        <run-jtreg-tests
1484           target="${build.main.java.version}"
1485           workdir="${build.dir}"
1486           classes="${product.jar}"
1487           verbose="all">
1488          <jtreg-elements>
1489            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1490            <arg value="-javacoption:-processorpath"/>
1491            <arg value="-javacoption:${errorprone.jar}"/>
1492            <arg value="-javacoption:-Xplugin:ErrorProne
1493                                ${errorprone.jsr166.flags}
1494                                ${errorprone.jsr166.test.flags}
1495                                -Xep:MultipleTopLevelClasses:WARN
1496                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1497          </jtreg-elements>
1498        </run-jtreg-tests>
1499      </target>
1500    
1501    
1502    <!-- ==============================================================
1503      Running guava tests against jsr166 code
1504    =================================================================== -->
1505    
1506    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1507    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1508    <!-- <property name="guava.version" value="21.0"/> -->
1509    
1510    <!-- HOWTO debug print a path id -->
1511    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1512    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1513    
1514    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1515    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1516    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1517    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1518    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1519    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1520    
1521    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1522    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1523    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1524    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1525    
1526    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1527    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1528    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1529    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1530    
1531    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1532    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1533    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1534    
1535      <target name="init-ivy">
1536        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1537             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1538        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1539                 classpath="${build.dir}/ivy.jar"/>
1540      </target>
1541    
1542      <target name="guava-tests" depends="jar, init-ivy"
1543              description="Guava tests run against jsr166 collections">
1544        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1545        <mkdir dir="${guava.dir}"/>
1546        <ivy:retrieve pathid="guava.testlib.classpath"
1547          type="jar,bundle" inline="true" conf="default,master"
1548          pattern="${guava.dir}/[artifact].[ext]"
1549          organisation="com.google.guava" module="guava-testlib"/>
1550        <property name="guava.version" value="21.0"/>
1551        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1552             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1553        <junit printsummary="true" showoutput="true" haltonfailure="true"
1554               jvm="${build.main.java}" fork="true">
1555          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1556          <formatter type="brief"/>
1557          <classpath>
1558            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1559            <path refid="guava.testlib.classpath"/>
1560          </classpath>
1561    
1562          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1563          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1564        </junit>
1565      </target>
1566    
1567  </project>  </project>

Legend:
Removed from v.1.224  
changed lines
  Added in v.1.283

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8