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

Diff of /jsr166/build.xml

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

revision 1.187 by jsr166, Sun Oct 4 05:22:26 2015 UTC revision 1.253 by jsr166, Sun Sep 24 00:47:54 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 85  Line 88 
88    <macrodef name="defjdklocations">    <macrodef name="defjdklocations">
89      <attribute name="v"/>      <attribute name="v"/>
90      <sequential>      <sequential>
91      <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>      <property name="jdk@{v}.home"     location="${jdks.home}/jdk@{v}"/>
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 171  Line 181 
181    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
182    
183    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
184    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <property name="java5.docroot.url"  value="http://docs.oracle.com/javase/1.5.0/docs"/>
185    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>    <property name="java6.docroot.url"  value="http://docs.oracle.com/javase/6/docs"/>
186    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>    <property name="java7.docroot.url"  value="http://docs.oracle.com/javase/7/docs"/>
187    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java8.docroot.url"  value="http://docs.oracle.com/javase/8/docs"/>
188    <!-- The expected canonical location does not yet exist as of 2014-07 -->    <property name="java9.docroot.url"  value="http://docs.oracle.com/javase/9/docs"/>
189    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <!-- The location of jdk9 early access docs -->
190    <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>    <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
191    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
192    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java.docroot.url"   value="${java9.docroot.url}"/>
193    
194    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
195    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 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      <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>      <!--
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"/>
226      <element name="javac-elements" optional="true"/>      <element name="javac-elements" optional="true"/>
227    
228      <sequential>      <sequential>
# 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="-Xoverride:${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="-Xoverride:${build.classes.dir}" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
273            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
274            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
275            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
276            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
278          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
279            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
280            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
281    
282          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
283          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
284            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
285            <propertyref prefix="jsr166."/>            <propertyref prefix="jsr166."/>
286              <propertyref name="test.timeout.factor"/>
287          </syspropertyset>          </syspropertyset>
288    
289          <classpath>          <classpath>
# Line 268  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 277  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 289  Line 320 
320      </patternset>      </patternset>
321    </fileset>    </fileset>
322    
323      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
324      <property name="jtreg.flags" value=""/>
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 299  Line 332 
332    
333      <sequential>      <sequential>
334    
335        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
336        <property name="jtreg.verbose" value="nopass,fail,error"/>
337    
338      <local name="modules"/>      <local name="modules"/>
339      <condition property="modules">      <condition property="modules">
340        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/jmods" type="dir"/>
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"/>  
     <mkdir dir="@{workdir}/JTreport"/>  
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="-Xoverride:${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="-verbose:nopass,fail,error"/>        <arg value="-noreport"/>
353          <arg value="-verbose:${jtreg.verbose}"/>
354        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
355        <arg value="-automatic"/>        <arg value="-automatic"/>
356        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
357        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
358          <arg line="${jtreg.flags}"/>
359      </jtreg>      </jtreg>
360      </sequential>      </sequential>
361    </macrodef>    </macrodef>
# Line 337  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 369  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    
# Line 388  Line 428 
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 409  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:"/>
       <arg value="-tag"/>  
       <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>  
482        <arg value="-tag"/>        <arg value="-tag"/>
483        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>        <arg value="implNote:a:Implementation Note:"/>
484    <!-- tags added in jdk9: currently unused -->
485    <!--       <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 465  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 492  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 524  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 582  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 593  Line 652 
652         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
653        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
654             source="${build.sourcelevel}"             source="${build.sourcelevel}"
655               target="${build.sourcelevel}"
656             encoding="ASCII"
657               fork="true">               fork="true">
658    
659        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 604  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 620  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 628  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>    </target>
755    
756    
757    <!-- jsr166 4jdk7 -->    <target name="4jdk8jar"
758              depends="4jdk8compile"
759              description="Builds library jar from compiled sources">
760    
761    <target name="4jdk7compile"      <jar destfile="${4jdk8product.jar}">
762            depends="configure-compiler"        <fileset dir="${build.4jdk8.classes.dir}"/>
763            description="Compiles src/jdk7 sources, targeting jdk7">        <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>
769    
770    
771      <target name="4jdk8-tck"
772              depends="4jdk8jar"
773              description="Runs tck tests for jsr166-4jdk8 directly">
774    
775        <run-tck-tests
776          target="8"
777          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 648  Line 869 
869             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
870             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
871             source="6"             source="6"
872               target="6"
873             classpath=""             classpath=""
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 661  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 677  Line 896 
896             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
897             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
898             source="6"             source="6"
899               target="6"
900             classpath=""             classpath=""
901             bootclasspath="${bootclasspath7}"             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 690  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 706  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 731  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 760  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 791  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 802  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 844  Line 1031 
1031             classpath=""             classpath=""
1032             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1033             source="5"             source="5"
1034               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 870  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 884  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    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1092    
1093      <target name="jsr166ycompile" depends="configure-compiler">
1094      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1095    
1096      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 933  Line 1099 
1099             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1100             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1101             source="6"             source="6"
1102               target="6"
1103             classpath=""             classpath=""
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 945  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 961  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 975  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 1027  Line 1172 
1172             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1173             classpath=""             classpath=""
1174             source="6"             source="6"
1175               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 1037  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 1053  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 1067  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 1118  Line 1243 
1243             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1244             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1245             source="${build.jsr166e.java.version}"             source="${build.jsr166e.java.version}"
1246               target="${build.jsr166e.java.version}"
1247             classpath=""             classpath=""
1248             includeAntRuntime="false"             includeAntRuntime="false"
1249             includeJavaRuntime="false"             includeJavaRuntime="false"
# Line 1129  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 1144  Line 1267 
1267             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1268             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1269             source="${build.jsr166e.java.version}"             source="${build.jsr166e.java.version}"
1270               target="${build.jsr166e.java.version}"
1271             classpath=""             classpath=""
1272             bootclasspath="${bootclasspath7}"             bootclasspath="${bootclasspath6}"
1273             includeAntRuntime="false"             includeAntRuntime="false"
1274             includeJavaRuntime="false"             includeJavaRuntime="false"
1275             executable="${javac8}"             executable="${javac8}"
# Line 1156  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 1172  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 1186  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 1208  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 1230  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 1274  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.187  
changed lines
  Added in v.1.253

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