[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.197, Fri Mar 4 21:00:45 2016 UTC revision 1.251, Tue Sep 19 19:47:20 2017 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage"  <project name="jsr166" default="usage"
2    xmlns:if="ant:if" xmlns:unless="ant:unless">    xmlns:if="ant:if" xmlns:unless="ant:unless"
3      xmlns:ivy="antlib:org.apache.ivy.ant">
4    
5    <description>    <description>
6  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 7  Line 8 
8    
9    Usage: ant [target]    Usage: ant [target]
10    
11      See http://gee.cs.oswego.edu/dl/concurrency-interest/index.html for
12      more details.
13    
14    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
15    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
16    
# Line 14  Line 18 
18    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
19    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
20    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
   $HOME/jdk/jdk7  
21    $HOME/jdk/jdk8    $HOME/jdk/jdk8
22    $HOME/jdk/jdk9    $HOME/jdk/jdk9
23      $HOME/jdk/jdk10
24    where each of the above is a JDK or a symlink to same, and    where each of the above is a JDK or a symlink to same, and
   $HOME/jdk/src/jdk6  
   $HOME/jdk/src/jdk7  
25    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
26    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
27      $HOME/jdk/src/jdk10
28    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
29    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
30    
31    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
32    ant -Djdk$N.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
33    for $N in 6 7 8 9 ...    for $N in 8 9 10 ...
34    
35    As of 2015-09, there is incomplete hacky support for jigsaw    As of 2016-03, the sources in src/main are for jdk9+ only.
   Build for jigsaw using something like:  
   ant -Djdk9.home="$HOME/jdk/jigsaw" -Djdk9.src.dir="$HOME/jdk/src/jigsaw" clean test dist  
   "docs" target is still broken.  
36  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
37    </description>    </description>
38    
39    <!-- Display main targets by running 'ant -projecthelp' -->    <!-- Run 'ant -projecthelp' (default target) -->
40    <target name="usage">    <target name="usage">
41      <java classname="org.apache.tools.ant.Main">      <java classname="org.apache.tools.ant.Main">
42        <arg value="-projecthelp" />        <arg value="-projecthelp" />
# Line 62  Line 61 
61    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
62    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
63    <property name="build.loops.dir"             location="${build.dir}/loops"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
   <property name="build.reports.dir"           location="${build.dir}/reports"/>  
64    
65    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
66    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
67    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
68    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
69    
70      <property name="build.4jdk8.dir"             location="${build.dir}/jsr166-4jdk8"/>
71      <property name="build.4jdk8.classes.dir"     location="${build.4jdk8.dir}/classes"/>
72      <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/>
73      <property name="build.4jdk8.docs.dir"        location="${build.4jdk8.dir}/docs"/>
74    
75    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
76    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
77    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
# Line 89  Line 92 
92      <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>      <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
93      <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>      <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
94      <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>      <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
95        <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
96      <local name="have.java.base"/>      <local name="have.java.base"/>
97      <available property="have.java.base"      <available property="have.java.base"
98        file="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes" type="dir"/>        file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/>
99      <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes"      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"
100        if:set="have.java.base"/>        if:set="have.java.base"/>
101      <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
102        unless:set="have.java.base"/>        unless:set="have.java.base"/>
103      <local name="modules"/>      <local name="modules"/>
104      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
# Line 127  Line 131 
131    <defjdklocations v="7"/>    <defjdklocations v="7"/>
132    <defjdklocations v="8"/>    <defjdklocations v="8"/>
133    <defjdklocations v="9"/>    <defjdklocations v="9"/>
134      <defjdklocations v="10"/>
135    
136    <!-- Source locations -->    <!-- Source locations -->
137    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 134  Line 139 
139    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
140    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
141    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
142    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
143    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
144      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
145    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
146    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
147    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
148    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
149    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
150      <property name="4jdk8src.dir"         location="${topsrc.dir}/jdk8"/>
151    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
152    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
153    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
# Line 149  Line 156 
156    <!-- Javadoc locations -->    <!-- Javadoc locations -->
157    <property name="docs.dir"          location="${build.dir}/docs"/>    <property name="docs.dir"          location="${build.dir}/docs"/>
158    <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>    <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
159      <property name="4jdk8docs.dir"     location="${build.4jdk8.dir}/docs"/>
160    <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>    <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
161    <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>    <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
162    <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>    <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
# Line 156  Line 164 
164    
165    <property name="dist.docs.dir"          location="${dist.dir}/docs"/>    <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
166    <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>    <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
167      <property name="dist.4jdk8docs.dir"     location="${dist.dir}/jsr166-4jdk8docs"/>
168    <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>    <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
169    <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>    <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
170    <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>    <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
# Line 164  Line 173 
173    <!-- Jar locations -->    <!-- Jar locations -->
174    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
175    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
176      <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
177    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
178    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
179    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
# Line 175  Line 185 
185    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
186    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
187    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
188    <!-- The expected canonical location does not yet exist as of 2015-11 -->    <!-- The expected canonical location does not yet exist as of 2016-04 -->
189    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
190    <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>
191    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
192    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java.docroot.url"       value="${java8.docroot.url}"/>
193    
# Line 209  Line 219 
219      <attribute name="compile-target" default="@{target}"/>      <attribute name="compile-target" default="@{target}"/>
220      <attribute name="workdir"/>      <attribute name="workdir"/>
221      <attribute name="classes"/>      <attribute name="classes"/>
222        <!--
223            <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/>
224        -->
225      <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>      <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
226      <element name="javac-elements" optional="true"/>      <element name="javac-elements" optional="true"/>
227    
# Line 219  Line 232 
232        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
233      </condition>      </condition>
234    
235        <local name="use-doclint"/>
236        <condition property="use-doclint">
237          <not> <equals arg1="@{target}" arg2="7"/> </not>
238        </condition>
239    
240      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
241    
242      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 231  Line 249 
249             classpath="${junit.jar}"             classpath="${junit.jar}"
250             includeAntRuntime="false"             includeAntRuntime="false"
251             includeJavaRuntime="false"             includeJavaRuntime="false"
252               encoding="ASCII"
253             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
254             fork="true">             fork="true">
255    
256        <include name="*.java"/>        <include name="*.java"/>
257        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
258        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
259          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
260        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
261        <compilerarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
262        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
263        <javac-elements/>        <javac-elements/>
264    
# Line 249  Line 269 
269            jvm="${java@{target}}"            jvm="${java@{target}}"
270            fork="true">            fork="true">
271          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
272          <jvmarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
273            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
274            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
275            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
276            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
278          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
279            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
280            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
281    
282          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
283          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
# Line 269  Line 296 
296    </macrodef>    </macrodef>
297    
298    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
299      <fileset dir="${jtreg10.src.dir}">
300        <patternset id="jdk10.jtreg.tests">
301          <include name="**/*.java"/>
302        </patternset>
303      </fileset>
304    
305    <fileset dir="${jtreg9.src.dir}">    <fileset dir="${jtreg9.src.dir}">
306      <patternset id="jdk9.jtreg.tests">      <patternset id="jdk9.jtreg.tests">
307        <include name="**/*.java"/>        <include name="**/*.java"/>
# Line 278  Line 311 
311    <fileset dir="${jtreg8.src.dir}">    <fileset dir="${jtreg8.src.dir}">
312      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
313        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
314      </patternset>      </patternset>
315    </fileset>    </fileset>
316    
# Line 295  Line 325 
325    
326    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
327      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
     <attribute name="source" default="7"/>  
328      <attribute name="target"/>      <attribute name="target"/>
329      <attribute name="workdir"/>      <attribute name="workdir"/>
330      <attribute name="classes"/>      <attribute name="classes"/>
# Line 312  Line 341 
341      </condition>      </condition>
342    
343      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
     <mkdir dir="@{workdir}/JTwork/scratch"/>  
     <!-- workaround for https://bugs.openjdk.java.net/browse/CODETOOLS-7901571 -->  
     <mkdir dir="@{workdir}/JTreport/html"/>  
     <mkdir dir="@{workdir}/JTreport/text"/>  
344      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
345             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
346             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
347        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
348        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
349        <arg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
350          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
351        <arg value="-agentvm"/>        <arg value="-agentvm"/>
352          <arg value="-noreport"/>
353        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:${jtreg.verbose}"/>
354        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
355        <arg value="-automatic"/>        <arg value="-automatic"/>
# Line 347  Line 372 
372    <!-- Main targets -->    <!-- Main targets -->
373    
374    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="9"/>
375    <property name="build.main.javac" value="${javac9}"/>    <!-- Workaround "no nested properties in ant" -->
376      <macrodef name="define-build-main-properties">
377        <attribute name="v"/>
378        <sequential>
379          <property name="build.main.java"    value="${java@{v}}"/>
380          <property name="build.main.javac"   value="${javac@{v}}"/>
381          <property name="build.main.javadoc" value="${javadoc@{v}}"/>
382        </sequential>
383      </macrodef>
384      <define-build-main-properties v="${build.main.java.version}"/>
385    
386    <target name="dists"    <target name="dists"
387            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
388            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
389              <!--
390                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
391              -->
392    
393    <target name="compile"    <target name="compile"
394            depends="configure-compiler"            depends="configure-compiler"
395            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
396    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
397      <local name="destdir"/>      <local name="destdir"/>
398      <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"/>  
399    
400      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
401    
# Line 379  Line 407 
407             classpath=""             classpath=""
408             includeAntRuntime="false"             includeAntRuntime="false"
409             includeJavaRuntime="false"             includeJavaRuntime="false"
410               encoding="ASCII"
411             executable="${build.main.javac}"             executable="${build.main.javac}"
412             fork="true">             fork="true">
413    
414        <include name="**/*.java"/>        <include name="**/*.java"/>
415        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
416        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
417        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
418        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
419          <compilerarg line="--doclint-format html5"/>
420          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
421        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
422        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
423        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
424    
425      </javac>      </javac>
   
     <!-- We need jdk9's Contended annotation, but at compile time only -->  
     <delete file="${destdir}/jdk/internal/vm/annotation/Contended.class"/>  
426    </target>    </target>
427    
428    
429    <target name="jar"    <target name="jar"
430            depends="compile"            depends="compile"
431            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
432        <local name="subdir"/>
433        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
434      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
435        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
436        <manifest>        <manifest>
437          <attribute name="Built-By" value="${user.name}"/>          <attribute name="Built-By" value="${user.name}"/>
438          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
# Line 422  Line 450 
450      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
451      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
452    
453    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
454    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
455    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
456    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
457    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
458      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
459               packagenames="none"               packagenames="none"
460               link="${java9.api.url}"               link="${java9.api.url}"
461               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
462               access="${build.javadoc.access}"               access="${build.javadoc.access}"
463               sourcepath="${src.dir}:${jdk9src.dir}"               sourcepath="${src.dir}"
464               classpath=""               classpath=""
465               executable="${javadoc9}">               source="9"
466                 executable="${build.main.javadoc}">
467        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
468          <include name="**/*.java"/>          <include name="**/*.java"/>
469        </fileset>        </fileset>
470        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
471        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
472        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
473  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
474          <arg value="--patch-module=java.base=${src.dir}"/>
475        <arg value="-tag"/>        <arg value="-tag"/>
476        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
477    <!-- @apiNote currently unused -->
478    <!--       <arg value="-tag"/> -->
479    <!--       <arg value="apiNote:a:API Note:"/> -->
480        <arg value="-tag"/>        <arg value="-tag"/>
481        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="implSpec:a:Implementation Requirements:"/>
482        <arg value="-tag"/>        <arg value="-tag"/>
483        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implNote:a:Implementation Note:"/>
484        <arg value="-tag"/>  <!-- tags added in jdk9: currently unused -->
485        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
486    <!--       <arg value="revised:X"/> -->
487    <!--       <arg value="-tag"/> -->
488    <!--       <arg value="spec:X"/> -->
489      </javadoc>      </javadoc>
490    </target>    </target>
491    
# Line 478  Line 519 
519    
520    <target name="clean"    <target name="clean"
521            description="Removes all build products">            description="Removes all build products">
   
522      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
523    </target>    </target>
524    
525    
526    <target name="dist-clean"    <target name="dist-clean"
527            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
528      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
529      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
530    </target>    </target>
531    
532    
# Line 505  Line 542 
542    
543    <target name="tck"    <target name="tck"
544            depends="jar"            depends="jar"
545            description="Runs tck tests for main directly">            description="Runs tck tests for src/main directly">
546    
547      <run-tck-tests      <run-tck-tests
548        target="${build.main.java.version}"        target="${build.main.java.version}"
549        workdir="${build.dir}"        workdir="${build.dir}"
550        classes="${product.jar}"/>        classes="${product.jar}">
551          <javac-elements>
552            <compilerarg value="-Werror"/>
553          </javac-elements>
554        </run-tck-tests>
555    </target>    </target>
556    
557    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
558            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 1">
559      <antcall target="tck">      <antcall target="tck">
560        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
561      </antcall>      </antcall>
562    </target>    </target>
563    
564    <target name="tck-parallelism-0"    <target name="tck-parallelism-0"
565            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 0">
566      <antcall target="tck">      <antcall target="tck">
567        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
568      </antcall>      </antcall>
569    </target>    </target>
570    
571      <target name="tck-security-manager"
572              description="Runs tck with a security manager">
573        <antcall target="tck">
574          <param name="jsr166.useSecurityManager" value="true"/>
575        </antcall>
576      </target>
577    
578    <target name="jtreg"    <target name="jtreg"
579            depends="jar"            depends="jar"
580            description="Runs jtreg tests for main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
581      <run-jtreg-tests      <run-jtreg-tests
582         target="${build.main.java.version}"         target="${build.main.java.version}"
583         workdir="${build.dir}"         workdir="${build.dir}"
# Line 537  Line 585 
585    </target>    </target>
586    
587    <target name="test"    <target name="test"
588            depends="tck, tck-parallelism-1, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
589            description="Runs tck and jtreg tests for main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
590    
591    <target name="jtreg8" description="Runs jtreg tests with jdk8">  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
592    
593      <antcall target="jtreg">  <!--     <antcall target="jtreg"> -->
594        <param name="build.main.java.version" value="8"/>  <!--       <param name="build.main.java.version" value="8"/> -->
595        <param name="build.main.javac" value="${javac8}"/>  <!--       <param name="build.main.javac" value="${javac8}"/> -->
596      </antcall>  <!--     </antcall> -->
597    
598    </target>  <!--   </target> -->
599    
600    <target name="test89"    <target name="test910"
601            description="Runs tck and jtreg tests for main for multiple java versions">            description="Runs tck and jtreg tests for src/main for multiple java versions">
602    
603      <antcall target="clean"/>      <antcall target="clean"/>
604      <antcall target="test">      <antcall target="test">
605        <param name="build.main.java.version" value="8"/>        <param name="build.main.java.version" value="9"/>
       <param name="build.main.javac" value="${javac8}"/>  
606      </antcall>      </antcall>
607    
608      <antcall target="clean"/>      <antcall target="clean"/>
609      <antcall target="test">      <antcall target="test">
610        <param name="build.main.java.version" value="9"/>        <param name="build.main.java.version" value="10"/>
       <param name="build.main.javac" value="${javac9}"/>  
611      </antcall>      </antcall>
612    
613        <!-- Clean up to avoid obscure wrong class file version bugs -->
614        <antcall target="clean"/>
615    
616    </target>    </target>
617    
618    
619    
620    <target name="configure-compiler">    <target name="configure-compiler">
621      <fail message="ant version too old">      <fail message="ant version too old">
622        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
623      </fail>      </fail>
624    
625      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 595  Line 641 
641    <!-- Various demos and test programs -->    <!-- Various demos and test programs -->
642    
643    
644    <target name="loops" depends="configure-compiler"    <!-- description="Benchmark from Doug Lea's AQS paper" -->
645            description="Benchmark from Doug Lea's AQS paper">    <target name="loops" depends="configure-compiler">
646    
647      <mkdir dir="${build.loops.dir}"/>      <mkdir dir="${build.loops.dir}"/>
648    
# Line 607  Line 653 
653        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
654             source="${build.sourcelevel}"             source="${build.sourcelevel}"
655             target="${build.sourcelevel}"             target="${build.sourcelevel}"
656             encoding="ASCII"
657               fork="true">               fork="true">
658    
659        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 618  Line 665 
665      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
666        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
667      </java>      </java>
   
668    </target>    </target>
669    
670    
671    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
672            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
673    
674      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
675    
# Line 634  Line 680 
680             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
681             includeAntRuntime="false"             includeAntRuntime="false"
682             includeJavaRuntime="false"             includeJavaRuntime="false"
683             executable="${javac9}"             encoding="ASCII"
684               executable="${build.main.javac}"
685             fork="true">             fork="true">
686    
687        <include name="*.java"/>        <include name="*.java"/>
# Line 642  Line 689 
689        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
690        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
691        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
692        </javac>
693      </target>
694    
695    
696      <!-- jsr166 4jdk8 -->
697    
698      <target name="4jdk8compile"
699              depends="configure-compiler"
700              description="Compiles src/jdk8 sources, targeting jdk8">
701    
702        <mkdir dir="${build.4jdk8.classes.dir}"/>
703    
704        <javac srcdir="${4jdk8src.dir}"
705               destdir="${build.4jdk8.classes.dir}"
706               debug="${build.debug}"
707               debuglevel="${build.debuglevel}"
708               deprecation="${build.deprecation}"
709               source="8"
710               target="8"
711               classpath=""
712               bootclasspath="${bootclasspath8}"
713               includeAntRuntime="false"
714               includeJavaRuntime="false"
715               encoding="ASCII"
716               executable="${javac8}"
717               fork="true">
718          <include name="**/*.java"/>
719          <compilerarg value="-Xprefer:source"/>
720          <compilerarg value="-XDignore.symbol.file=true"/>
721          <compilerarg value="-Xlint:all"/>
722          <compilerarg value="-Werror"/>
723          <compilerarg line="${build.args}"/>
724      </javac>      </javac>
725      </target>
726    
727      <target name="4jdk8doclint"
728              depends="configure-compiler"
729              description="Finds doclint warnings">
730    
731        <mkdir dir="${build.4jdk8.classes.dir}"/>
732    
733        <javac srcdir="${4jdk8src.dir}"
734               destdir="${build.4jdk8.classes.dir}"
735               debug="${build.debug}"
736               debuglevel="${build.debuglevel}"
737               deprecation="${build.deprecation}"
738               source="8"
739               target="8"
740               classpath=""
741               bootclasspath="${bootclasspath8}"
742               includeAntRuntime="false"
743               includeJavaRuntime="false"
744               encoding="ASCII"
745               executable="${javac8}"
746               fork="true">
747          <include name="**/*.java"/>
748          <compilerarg value="-Xprefer:source"/>
749          <compilerarg value="-XDignore.symbol.file=true"/>
750          <compilerarg value="-Xlint:all"/>
751          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
752          <compilerarg line="${build.args}"/>
753        </javac>
754      </target>
755    
756    
757      <target name="4jdk8jar"
758              depends="4jdk8compile"
759              description="Builds library jar from compiled sources">
760    
761        <jar destfile="${4jdk8product.jar}">
762          <fileset dir="${build.4jdk8.classes.dir}"/>
763          <manifest>
764            <attribute name="Built-By" value="${user.name}"/>
765            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
766          </manifest>
767        </jar>
768    </target>    </target>
769    
770    
771    <!-- jsr166 4jdk7 -->    <target name="4jdk8-tck"
772              depends="4jdk8jar"
773              description="Runs tck tests for jsr166-4jdk8 directly">
774    
775    <target name="4jdk7compile"      <run-tck-tests
776            depends="configure-compiler"        target="8"
777            description="Compiles src/jdk7 sources, targeting jdk7">        workdir="${build.4jdk8.dir}"
778          classes="${4jdk8product.jar}">
779          <javac-elements>
780            <!-- JDK9+ test classes -->
781            <exclude name="*9Test.java"/>
782            <exclude name="*10Test.java"/>
783            <compilerarg value="-Werror"/>
784          </javac-elements>
785        </run-tck-tests>
786      </target>
787    
788    
789      <target name="4jdk8-jtreg"
790              depends="4jdk8jar"
791              description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
792        <run-jtreg-tests
793           target="8"
794           workdir="${build.4jdk8.dir}"
795           classes="${4jdk8product.jar}"/>
796      </target>
797    
798    
799      <target name="4jdk8-test"
800              depends="4jdk8-tck, 4jdk8-jtreg"
801              description="Runs tck and jtreg tests for jsr166-4jdk8"/>
802    
803    
804      <target name="4jdk8docs"
805              description="Builds javadocs for src/jdk8 to dist dir">
806    
807        <delete dir="${4jdk8docs.dir}"/>
808        <mkdir dir="${4jdk8docs.dir}"/>
809    
810        <javadoc destdir="${4jdk8docs.dir}"
811                 packagenames="none"
812                 link="${java8.api.url}"
813                 overview="${4jdk8src.dir}/intro.html"
814                 access="${build.javadoc.access}"
815                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
816                 classpath=""
817                 source="8"
818                 executable="${javadoc8}"
819                 failonerror = "true">
820          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
821            <include name="**/*.java"/>
822          </fileset>
823          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
824          <arg value="-XDignore.symbol.file=true"/>
825          <arg value="-tag"/>
826          <arg value="${javadoc.jls.option}"/>
827    <!-- @apiNote currently unused -->
828    <!--       <arg value="-tag"/> -->
829    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
830          <arg value="-tag"/>
831          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
832          <arg value="-tag"/>
833          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
834        </javadoc>
835      </target>
836    
837    
838      <target name="4jdk8dist"
839              depends="4jdk8dist-jar, 4jdk8dist-docs"
840              description="Puts all distributable products in single hierarchy"/>
841    
842    
843      <target name="4jdk8clean"
844              description="Removes all 4jdk8 build products">
845        <delete dir="${build.4jdk8.dir}"/>
846      </target>
847    
848    
849      <target name="4jdk8dist-jar"
850              depends="4jdk8clean, 4jdk8jar">
851        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
852      </target>
853    
854    
855      <target name="4jdk8dist-docs"
856              depends="4jdk8clean, 4jdk8docs">
857        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
858      </target>
859    
860    
861      <!-- jsr166 4jdk7 (no longer maintained) -->
862    
863      <target name="4jdk7compile" depends="configure-compiler">
864      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
865    
866      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 667  Line 874 
874             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
875             includeAntRuntime="false"             includeAntRuntime="false"
876             includeJavaRuntime="false"             includeJavaRuntime="false"
877               encoding="ASCII"
878             executable="${javac7}"             executable="${javac7}"
879             fork="true">             fork="true">
880    
# Line 676  Line 884 
884        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
885        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
886        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
887      </javac>      </javac>
888    </target>    </target>
889    
890    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
891      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
892    
893      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 697  Line 901 
901             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
902             includeAntRuntime="false"             includeAntRuntime="false"
903             includeJavaRuntime="false"             includeJavaRuntime="false"
904               encoding="ASCII"
905             executable="${javac8}"             executable="${javac8}"
906             fork="true">             fork="true">
907    
# Line 706  Line 911 
911        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
912        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
913        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
914      </javac>      </javac>
915    </target>    </target>
916    
917      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
918      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
919        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
920        <manifest>        <manifest>
# Line 722  Line 922 
922          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
923        </manifest>        </manifest>
924      </jar>      </jar>
   
925    </target>    </target>
926    
927      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
928      <run-tck-tests      <run-tck-tests
929        target="7"        target="7"
930        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 747  Line 942 
942          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
943          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
944          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
945            <compilerarg value="-Werror"/>
946        </javac-elements>        </javac-elements>
947      </run-tck-tests>      </run-tck-tests>
948    </target>    </target>
949    
950      <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
951    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile"  
           description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">  
952    
953      <junit printsummary="true"      <junit printsummary="true"
954             showoutput="true"             showoutput="true"
# Line 776  Line 970 
970    
971        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
972        </test>        </test>
   
973      </junit>      </junit>
974    </target>    </target>
975    
976    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
977      <run-jtreg-tests      <run-jtreg-tests
978         target="7"         target="7"
979         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
980         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
981    </target>    </target>
982    
983      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
984    
985    <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">  
   
986      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
987      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
988    
# Line 807  Line 991 
991               link="${java7.api.url}"               link="${java7.api.url}"
992               overview="${4jdk7src.dir}/intro.html"               overview="${4jdk7src.dir}/intro.html"
993               access="${build.javadoc.access}"               access="${build.javadoc.access}"
994               sourcepath="${4jdk7src.dir}:${jdk7src.dir}"               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
995               classpath=""               classpath=""
996               executable="${javadoc7}">               executable="${javadoc7}"
997                 failonerror = "true">
998        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
999          <include name="**/*.java"/>          <include name="**/*.java"/>
1000        </fileset>        </fileset>
# Line 818  Line 1003 
1003      </javadoc>      </javadoc>
1004    </target>    </target>
1005    
1006      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1007    
1008    <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">  
   
1009      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1010    </target>    </target>
1011    
1012      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1013      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1014    </target>    </target>
1015    
1016      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1017      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1018    </target>    </target>
1019    
1020    
1021    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1022    
1023      <target name="jsr166xcompile" depends="configure-compiler">
1024      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1025    
1026      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 863  Line 1034 
1034             target="5"             target="5"
1035             includeAntRuntime="false"             includeAntRuntime="false"
1036             includeJavaRuntime="false"             includeJavaRuntime="false"
1037               encoding="ASCII"
1038             executable="${javac7}"             executable="${javac7}"
1039             fork="true">             fork="true">
   
1040        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1041        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1042        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1043        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1044        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1045      </javac>      </javac>
1046    </target>    </target>
1047    
1048      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1049      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1050        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1051        <manifest>        <manifest>
# Line 887  Line 1053 
1053          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1054        </manifest>        </manifest>
1055      </jar>      </jar>
   
1056    </target>    </target>
1057    
1058      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1059      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1060      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1061    
# Line 901  Line 1063 
1063               packagenames="jsr166x.*"               packagenames="jsr166x.*"
1064               link="${java.api.url}"               link="${java.api.url}"
1065               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1066               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1067               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1068               source="5"               source="5"
1069               executable="${javadoc7}">               executable="${javadoc7}"
1070                 failonerror = "true">
1071        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1072        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1073      </javadoc>      </javadoc>
1074    </target>    </target>
1075    
1076      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1077    
1078    <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">  
   
1079      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1080    </target>    </target>
1081    
1082      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1083      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1084    </target>    </target>
1085    
1086    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1087      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1088    </target>    </target>
1089    
   <!-- jsr166y -->  
1090    
1091      <!-- jsr166y (no longer maintained) -->
1092    
1093    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1094      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1095    
1096      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 955  Line 1104 
1104             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1105             includeAntRuntime="false"             includeAntRuntime="false"
1106             includeJavaRuntime="false"             includeJavaRuntime="false"
1107               encoding="ASCII"
1108             executable="${javac7}"             executable="${javac7}"
1109             fork="true">             fork="true">
1110    
# Line 963  Line 1113 
1113        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1114        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1115        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1116      </javac>      </javac>
1117    </target>    </target>
1118    
1119      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1120      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1121        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1122        <manifest>        <manifest>
# Line 979  Line 1124 
1124          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1125        </manifest>        </manifest>
1126      </jar>      </jar>
   
1127    </target>    </target>
1128    
1129      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1130      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1131      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1132    
# Line 993  Line 1134 
1134               packagenames="jsr166y.*"               packagenames="jsr166y.*"
1135               link="${java.api.url}"               link="${java.api.url}"
1136               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1137               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1138               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1139               source="6"               source="6"
1140               executable="${javadoc7}">               executable="${javadoc7}"
1141                 failonerror = "true">
1142        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1143        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1144      </javadoc>      </javadoc>
1145    </target>    </target>
1146    
1147      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1148    
1149    <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">  
   
1150      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1151    </target>    </target>
1152    
1153      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1154      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1155    </target>    </target>
1156    
1157    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1158      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1159    </target>    </target>
1160    
1161    
1162    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1163    
1164      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1165      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1166    
1167      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1048  Line 1175 
1175             target="6"             target="6"
1176             includeAntRuntime="false"             includeAntRuntime="false"
1177             includeJavaRuntime="false"             includeJavaRuntime="false"
1178               encoding="ASCII"
1179             executable="${javac7}"             executable="${javac7}"
1180             fork="true">             fork="true">
1181    
# Line 1056  Line 1184 
1184        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1185        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1186        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1187      </javac>      </javac>
1188    </target>    </target>
1189    
1190      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1191      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1192        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1193        <manifest>        <manifest>
# Line 1072  Line 1195 
1195          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1196        </manifest>        </manifest>
1197      </jar>      </jar>
   
1198    </target>    </target>
1199    
1200      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1201      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1202      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1203    
# Line 1086  Line 1205 
1205               packagenames="extra166y.*"               packagenames="extra166y.*"
1206               link="${java.api.url}"               link="${java.api.url}"
1207               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1208               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1209               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1210               source="6"               source="6"
1211               executable="${javadoc7}">               executable="${javadoc7}">
1212        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1213        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1214      </javadoc>      </javadoc>
1215    </target>    </target>
1216    
1217      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1218    
1219    <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">  
   
1220      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1221    </target>    </target>
1222    
1223      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1224      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1225    </target>    </target>
1226    
1227    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1228      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1229    </target>    </target>
1230    
1231    <!-- jsr166e -->  
1232      <!-- jsr166e (no longer maintained) -->
1233    
1234    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1235    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1236    
1237    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1238      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1239    
1240      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1149  Line 1255 
1255        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1256        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1257        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1258      </javac>      </javac>
1259    </target>    </target>
1260    
   <!-- jsr166e: find doclint errors -->  
1261    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1262      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1263    
1264      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1177  Line 1280 
1280        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1281        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1282        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1283      </javac>      </javac>
1284    </target>    </target>
1285    
1286      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1287      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1288        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1289        <manifest>        <manifest>
# Line 1193  Line 1291 
1291          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1292        </manifest>        </manifest>
1293      </jar>      </jar>
   
1294    </target>    </target>
1295    
1296      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1297      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1298      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1299    
# Line 1207  Line 1301 
1301               packagenames="jsr166e.*"               packagenames="jsr166e.*"
1302               link="${java.api.url}"               link="${java.api.url}"
1303               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1304               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1305               source="${build.jsr166e.java.version}"               source="${build.jsr166e.java.version}"
1306               executable="${javadoc7}">               executable="${javadoc7}"
1307                 failonerror = "true">
1308        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1309        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1310      </javadoc>      </javadoc>
1311    </target>    </target>
1312    
1313      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1314      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1315      <run-tck-tests      <run-tck-tests
1316        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1317        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1229  Line 1319 
1319        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1320    </target>    </target>
1321    
1322    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1323    
1324  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1325  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1251  Line 1340 
1340      </antcall>      </antcall>
1341    </target>    </target>
1342    
1343      <target name="jsr166e-test" depends="jsr166e-tck"/>
1344    
1345    <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"/>  
   
1346    
1347    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1348      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1349    </target>    </target>
1350    
   
1351    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1352            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1353      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1354    </target>    </target>
1355    
1356    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1357      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1358    </target>    </target>
1359    
# Line 1295  Line 1374 
1374    </target>    </target>
1375    
1376    
1377    <!-- ==============================================================
1378      Experimental errorprone support - http://errorprone.info
1379    =================================================================== -->
1380      <target name="errorprone"
1381              depends="clean, configure-compiler"
1382              description="Run errorprone over jsr166 source code (experimental)">
1383    
1384        <local name="destdir"/>
1385        <property name="destdir" value="${build.classes.dir}/java.base"/>
1386        <mkdir dir="${destdir}"/>
1387    
1388        <javac srcdir="${src.dir}"
1389               destdir="${destdir}"
1390               debug="${build.debug}"
1391               debuglevel="${build.debuglevel}"
1392               deprecation="${build.deprecation}"
1393               classpath=""
1394               includeAntRuntime="false"
1395               includeJavaRuntime="false"
1396               encoding="ASCII"
1397               executable="${build.main.javac}"
1398               fork="true">
1399    
1400          <include name="**/*.java"/>
1401          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.21.jar"/>
1402          <compilerarg value="-Xplugin:ErrorProne
1403                              -Xep:IdentityBinaryExpression:WARN
1404                              -Xep:MissingOverride:OFF
1405                              -Xep:MixedArrayDimensions:WARN
1406                              -Xep:RemoveUnusedImports:ERROR
1407                              -Xep:ClassName:ERROR
1408                              -Xep:MultipleTopLevelClasses:ERROR
1409                              -Xep:EmptyIf:ERROR
1410                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1411                              -Xep:RedundantThrows:ERROR
1412                              -Xep:MethodCanBeStatic:WARN"/>
1413          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1414          <compilerarg value="-Xprefer:source"/>
1415          <compilerarg value="-XDignore.symbol.file=true"/>
1416          <compilerarg value="-Xlint:all"/>
1417          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1418          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1419          <compilerarg line="${build.args}"/>
1420        </javac>
1421    
1422        <jar destfile="${product.jar}">
1423          <fileset dir="${destdir}"/>
1424        </jar>
1425    
1426        <run-tck-tests
1427          target="${build.main.java.version}"
1428          workdir="${build.dir}"
1429          classes="${product.jar}">
1430          <javac-elements>
1431            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.21.jar"/>
1432            <compilerarg value="-Xplugin:ErrorProne
1433                                -Xep:IdentityBinaryExpression:WARN
1434                                -Xep:BoxedPrimitiveConstructor:OFF
1435                                -Xep:HashtableContains:OFF
1436                                -Xep:ModifyingCollectionWithItself:OFF
1437                                -Xep:MissingOverride:OFF
1438                                -Xep:MixedArrayDimensions:WARN
1439                                -Xep:RemoveUnusedImports:ERROR
1440                                -Xep:ClassName:ERROR
1441                                -Xep:MultipleTopLevelClasses:ERROR
1442                                -Xep:EmptyIf:ERROR
1443                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1444                                -Xep:RedundantThrows:ERROR
1445                                -Xep:MethodCanBeStatic:WARN"/>
1446            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1447          </javac-elements>
1448        </run-tck-tests>
1449      </target>
1450    
1451    
1452    <!-- ==============================================================
1453      Running guava tests against jsr166 code
1454    =================================================================== -->
1455    
1456    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1457    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1458    <!-- <property name="guava.version" value="21.0"/> -->
1459    
1460    <!-- HOWTO debug print a path id -->
1461    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1462    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1463    
1464    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1465    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1466    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1467    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1468    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1469    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1470    
1471    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1472    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1473    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1474    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1475    
1476    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1477    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1478    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1479    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1480    
1481    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1482    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1483    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1484    
1485      <target name="init-ivy">
1486        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1487             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1488        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1489                 classpath="${build.dir}/ivy.jar"/>
1490      </target>
1491    
1492      <target name="guava-tests" depends="jar, init-ivy"
1493              description="Guava tests run against jsr166 collections">
1494        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1495        <mkdir dir="${guava.dir}"/>
1496        <ivy:retrieve pathid="guava.testlib.classpath"
1497          type="jar,bundle" inline="true" conf="default,master"
1498          pattern="${guava.dir}/[artifact].[ext]"
1499          organisation="com.google.guava" module="guava-testlib"/>
1500        <property name="guava.version" value="21.0"/>
1501        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1502             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1503        <junit printsummary="true" showoutput="true" haltonfailure="true"
1504               jvm="${build.main.java}" fork="true">
1505          <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1506          <formatter type="brief"/>
1507          <classpath>
1508            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1509            <path refid="guava.testlib.classpath"/>
1510          </classpath>
1511    
1512          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1513          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1514        </junit>
1515      </target>
1516    
1517  </project>  </project>

Legend:
Removed from v.1.197  
changed lines
  Added in v.1.251

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8