[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.172, Wed Sep 2 05:00:20 2015 UTC revision 1.241, Mon Mar 27 02:11:26 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"
3      xmlns:ivy="antlib:org.apache.ivy.ant">
4    
5    <description>    <description>
6  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 6  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 13  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 2016-03, the sources in src/main are for jdk9+ only.
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" />
43      </java>      </java>
44    </target>    </target>
45    
46      <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
47    
48    <!-- User-specific settings -->    <!-- User-specific settings -->
49    <property file="user.properties"/>    <property file="user.properties"/>
# Line 50  Line 56 
56    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
57    <property name="build.javadoc.access" value="protected"/>    <property name="build.javadoc.access" value="protected"/>
58    
   <!-- Tck options; see JSR166TestCase.java  
    To profile a single tck test class:  
    ant -Djsr166.profileTests=true -Djsr166.profileThreshold=100 -Djsr166.tckTestClass=CompletableFutureTest test-tck  
    To stress test a single tck test class:  
    ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 test-tck  
   -->  
   <property name="jsr166.profileTests"     value="false"/>  
   <property name="jsr166.profileThreshold" value="100"/>  
   <property name="jsr166.runsPerTest"      value="1"/>  
   <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>  
   
59    <!-- Build locations -->    <!-- Build locations -->
60    <property name="build.dir"                   location="build"/>    <property name="build.dir"                   location="build"/>
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 93  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.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>      <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
96        <local name="have.java.base"/>
97        <available property="have.java.base"
98          file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/>
99        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"
100          if:set="have.java.base"/>
101        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
102          unless:set="have.java.base"/>
103        <local name="modules"/>
104        <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
105      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
106      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib"/>      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
107      <path id="bootclasspath@{v}">      <path id="bootclasspath@{v}" unless:set="modules">
108        <pathelement path="${boot.jar.dir}/resources.jar"/>        <pathelement path="${boot.jar.dir}/resources.jar"/>
109        <pathelement path="${boot.jar.dir}/rt.jar"/>        <pathelement path="${boot.jar.dir}/rt.jar"/>
110        <pathelement path="${boot.jar.dir}/jsse.jar"/>        <pathelement path="${boot.jar.dir}/jsse.jar"/>
111        <pathelement path="${boot.jar.dir}/jce.jar"/>        <pathelement path="${boot.jar.dir}/jce.jar"/>
112        <pathelement path="${boot.jar.dir}/charsets.jar"/>        <pathelement path="${boot.jar.dir}/charsets.jar"/>
113      </path>      </path>
114      <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>      <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
115      </sequential>      </sequential>
116    </macrodef>    </macrodef>
117    
# Line 123  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"/>
138    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
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="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
142      <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
143      <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}"/>
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 142  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 149  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 157  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 168  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 2014-07 -->    <!-- 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 187  Line 204 
204    <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"    <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
205             classpath="${lib.dir}/jtreg.jar" />             classpath="${lib.dir}/jtreg.jar" />
206    
207    <!-- Test classpath -->    <!-- Tck options; see JSR166TestCase.java
208    <path id="test.classpath">     To profile a single tck test class:
209      <pathelement location="${build.testcases.dir}"/>     ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
210      <pathelement location="${junit.jar}"/>     To stress test a single tck test class:
211    </path>     ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
212       To stress test a single tck test method:
213       ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
214      -->
215      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
216    <macrodef name="run-tck-tests">    <macrodef name="run-tck-tests">
217      <attribute name="tck.src.dir" default="${tck.src.dir}"/>      <attribute name="tck.src.dir" default="${tck.src.dir}"/>
218      <attribute name="target"/>      <attribute name="target"/>
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    
228      <sequential>      <sequential>
229    
230        <local name="modules"/>
231        <condition property="modules">
232          <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
233        </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 215  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"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
259        <compilerarg value="-Xbootclasspath/p:@{classes}"/>        <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
260          <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
261          <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 231  Line 268 
268            failonerror="true"            failonerror="true"
269            jvm="${java@{target}}"            jvm="${java@{target}}"
270            fork="true">            fork="true">
271          <jvmarg value="-Xbootclasspath/p:@{classes}"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
272            <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 test-tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
283          <syspropertyset id="java.util.concurrent.ForkJoinPool-properties">          <syspropertyset id="system-properties-used-by-tck">
284            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
285              <propertyref prefix="jsr166."/>
286              <propertyref name="test.timeout.factor"/>
287          </syspropertyset>          </syspropertyset>
288    
         <sysproperty key="jsr166.profileTests"     value="${jsr166.profileTests}"/>  
         <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>  
         <sysproperty key="jsr166.runsPerTest"      value="${jsr166.runsPerTest}"/>  
289          <classpath>          <classpath>
290            <pathelement location="${junit.jar}"/>            <pathelement location="${junit.jar}"/>
291            <pathelement location="@{workdir}/tck-classes"/>            <pathelement location="@{workdir}/tck-classes"/>
# Line 252  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="${jtreg.src.dir}">    <fileset dir="${jtreg9.src.dir}">
300      <patternset id="jdk9.jtreg.tests">      <patternset id="jdk9.jtreg.tests">
301        <include name="**/*.java"/>        <include name="**/*.java"/>
302      </patternset>      </patternset>
303    </fileset>    </fileset>
304    
305    <fileset dir="${jtreg.src.dir}">    <fileset dir="${jtreg8.src.dir}">
306      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
307        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="util/Spliterator/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="util/WeakHashMap/GCDuringIteration.java"/>  
308      </patternset>      </patternset>
309    </fileset>    </fileset>
310    
311    <fileset dir="${jtreg.src.dir}">    <fileset dir="${jtreg7.src.dir}">
312      <patternset id="jdk7.jtreg.tests">      <patternset id="jdk7.jtreg.tests">
313        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="util/Collection/CollectionDefaults.java"/>  
       <exclude name="util/List/ListDefaults.java"/>  
       <exclude name="util/Spliterator/**/*.java"/>  
       <exclude name="**/CompletableFuture/**/*.java"/>  
       <exclude name="**/ConcurrentAssociateTest.java"/>  
       <exclude name="**/ConcurrentContainsKeyTest.java"/>  
       <exclude name="**/ConcurrentHashMap/ToArray.java"/>  
       <exclude name="**/ConcurrentRemoveIf.java"/>  
       <exclude name="**/COWSubList.java"/>  
       <exclude name="**/FutureTask/NegativeTimeout.java"/>  
       <exclude name="**/LinkedTransferQueue/SpliteratorTraverseAddRemoveTest.java"/>  
       <exclude name="**/forkjoin/SubmissionTest.java"/>  
       <exclude name="**/StampedLock/**/*.java"/>  
       <exclude name="**/AtomicReferenceTest.java"/>  
       <exclude name="util/concurrent/atomic/Serial.java"/>  
314      </patternset>      </patternset>
315    </fileset>    </fileset>
316    
317      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
318      <property name="jtreg.flags" value=""/>
319    
320    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
321      <!-- ant -Djtreg.src.dir=src/test/jtreg/util/concurrent/CompletableFuture test-jtreg -->      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
     <attribute name="jtreg.src.dir" default="${jtreg.src.dir}"/>  
322      <attribute name="source" default="7"/>      <attribute name="source" default="7"/>
323      <attribute name="target"/>      <attribute name="target"/>
324      <attribute name="workdir"/>      <attribute name="workdir"/>
325      <attribute name="classes"/>      <attribute name="classes"/>
326      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
327    
328      <sequential>      <sequential>
329    
330        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
331        <property name="jtreg.verbose" value="nopass,fail,error"/>
332    
333        <local name="modules"/>
334        <condition property="modules">
335          <available file="${jdk@{target}.home}/jmods" type="dir"/>
336        </condition>
337    
338      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
339      <delete dir="@{workdir}/JTreport" quiet="true"/>      <jtreg dir="${jtreg@{target}.src.dir}"
     <mkdir dir="@{workdir}/JTwork/scratch"/>  
     <mkdir dir="@{workdir}/JTreport"/>  
     <jtreg dir="@{jtreg.src.dir}"  
340             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
341             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
342        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
343        <arg value="-Xbootclasspath/p:@{classes}"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
344          <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>
345          <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>
346        <arg value="-agentvm"/>        <arg value="-agentvm"/>
347        <arg value="-v:nopass,fail"/>        <arg value="-noreport"/>
348          <arg value="-verbose:${jtreg.verbose}"/>
349        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
350        <arg value="-automatic"/>        <arg value="-automatic"/>
351        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
352        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
353          <arg line="${jtreg.flags}"/>
354      </jtreg>      </jtreg>
355      </sequential>      </sequential>
356    </macrodef>    </macrodef>
# Line 332  Line 370 
370    <property name="build.main.javac" value="${javac9}"/>    <property name="build.main.javac" value="${javac9}"/>
371    
372    <target name="dists"    <target name="dists"
373            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
374            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
375              <!--
376                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
377              -->
378    
379    <target name="compile"    <target name="compile"
380            depends="configure-compiler"            depends="configure-compiler"
381            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
382    
383      <mkdir dir="${build.classes.dir}"/>      <local name="modules"/>
384        <condition property="modules">
385          <and>
386            <available file="${jdk9.home}/jmods" type="dir"/>
387            <equals arg1="9" arg2="${build.main.java.version}"/>
388          </and>
389        </condition>
390    
391        <local name="destdir"/>
392        <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
393        <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
394    
395        <mkdir dir="${destdir}"/>
396    
397      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
398             destdir="${build.classes.dir}"             destdir="${destdir}"
399             debug="${build.debug}"             debug="${build.debug}"
400             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
401             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
402             classpath=""             classpath=""
403             includeAntRuntime="false"             includeAntRuntime="false"
404             includeJavaRuntime="false"             includeJavaRuntime="false"
405               encoding="ASCII"
406             executable="${build.main.javac}"             executable="${build.main.javac}"
407             fork="true">             fork="true">
408    
409        <include name="**/*.java"/>        <include name="**/*.java"/>
410          <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>
411        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
412        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
413        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
414        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
415        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
416        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
417        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
418    
# Line 367  Line 422 
422    
423    <target name="jar"    <target name="jar"
424            depends="compile"            depends="compile"
425            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
426        <local name="subdir"/>
427        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
428      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
429        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
430          <manifest>
431            <attribute name="Built-By" value="${user.name}"/>
432            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
433          </manifest>
434      </jar>      </jar>
435    </target>    </target>
436    
# Line 384  Line 444 
444      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
445      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
446    
447    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
448    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
449    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
450    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
451    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
452      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
453               packagenames="none"               packagenames="none"
454               link="${java9.api.url}"               link="${java9.api.url}"
455               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
456               access="${build.javadoc.access}"               access="${build.javadoc.access}"
457               sourcepath="${src.dir}:${jdk9src.dir}"               sourcepath="${src.dir}"
458               classpath=""               classpath=""
459               executable="${javadoc9}">               executable="${javadoc9}">
460        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
# Line 398  Line 463 
463        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
464        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
465        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
466          <arg value="--patch-module=java.base=${src.dir}"/>
467        <arg value="-tag"/>        <arg value="-tag"/>
468        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
469    <!-- @apiNote currently unused -->
470    <!--       <arg value="-tag"/> -->
471    <!--       <arg value="apiNote:a:API Note:"/> -->
472        <arg value="-tag"/>        <arg value="-tag"/>
473        <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;"/>  
474        <arg value="-tag"/>        <arg value="-tag"/>
475        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>        <arg value="implNote:a:Implementation Note:"/>
476    <!-- tags added in jdk9: currently unused -->
477    <!--       <arg value="-tag"/> -->
478    <!--       <arg value="revised:X"/> -->
479    <!--       <arg value="-tag"/> -->
480    <!--       <arg value="spec:X"/> -->
481      </javadoc>      </javadoc>
482    </target>    </target>
483    
# Line 429  Line 501 
501        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
502        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
503        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
504          <manifest>
505            <attribute name="Built-By" value="${user.name}"/>
506            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
507          </manifest>
508      </jar>      </jar>
509    </target>    </target>
510    
511    
512    <target name="clean"    <target name="clean"
513            description="Removes all build products">            description="Removes all build products">
   
514      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
515    </target>    </target>
516    
517    
518    <target name="dist-clean"    <target name="dist-clean"
519            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
520      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
521      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
522    </target>    </target>
523    
524    
# Line 460  Line 532 
532      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
533    </target>    </target>
534    
535    <target name="tck" depends="test-tck" description="alias for test-tck"/>    <target name="tck"
   <target name="test-tck"  
536            depends="jar"            depends="jar"
537            description="Runs tck tests for main directly">            description="Runs tck tests for src/main directly">
538    
539      <run-tck-tests      <run-tck-tests
540        target="${build.main.java.version}"        target="${build.main.java.version}"
541        workdir="${build.dir}"        workdir="${build.dir}"
542        classes="${product.jar}"/>        classes="${product.jar}">
543          <javac-elements>
544            <compilerarg value="-Werror"/>
545          </javac-elements>
546        </run-tck-tests>
547    </target>    </target>
548    
549    <target name="test-tck-parallelism-1"    <target name="tck-parallelism-1"
550            description="Runs test-tck with given common pool parallelism">            description="Runs tck with common pool parallelism 1">
551      <antcall target="test-tck">      <antcall target="tck">
552        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
553      </antcall>      </antcall>
554    </target>    </target>
555    
556    <target name="test-tck-parallelism-0"    <target name="tck-parallelism-0"
557            description="Runs test-tck with given common pool parallelism">            description="Runs tck with common pool parallelism 0">
558      <antcall target="test-tck">      <antcall target="tck">
559        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
560      </antcall>      </antcall>
561    </target>    </target>
562    
563    <target name="jtreg" depends="test-jtreg" description="alias for test-jtreg"/>    <target name="tck-security-manager"
564    <target name="test-jtreg"            description="Runs tck with a security manager">
565        <antcall target="tck">
566          <param name="jsr166.useSecurityManager" value="true"/>
567        </antcall>
568      </target>
569    
570      <target name="jtreg"
571            depends="jar"            depends="jar"
572            description="Runs jtreg tests for main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
573      <run-jtreg-tests      <run-jtreg-tests
574         target="${build.main.java.version}"         target="${build.main.java.version}"
575         workdir="${build.dir}"         workdir="${build.dir}"
# Line 496  Line 577 
577    </target>    </target>
578    
579    <target name="test"    <target name="test"
580            depends="test-tck, test-tck-parallelism-1, test-jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
581            description="Runs tck and jtreg tests for main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
582    
583    <target name="jtreg8" description="Runs jtreg tests with jdk8">  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
584    
585      <antcall target="jtreg">  <!--     <antcall target="jtreg"> -->
586        <param name="build.main.java.version" value="8"/>  <!--       <param name="build.main.java.version" value="8"/> -->
587        <param name="build.main.javac" value="${javac8}"/>  <!--       <param name="build.main.javac" value="${javac8}"/> -->
588      </antcall>  <!--     </antcall> -->
589    
590    </target>  <!--   </target> -->
591    
592    <target name="test89"  <!--   <target name="test89" -->
593            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"> -->
594    
595      <antcall target="clean"/>  <!--     <antcall target="clean"/> -->
596      <antcall target="test">  <!--     <antcall target="test"> -->
597        <param name="build.main.java.version" value="8"/>  <!--       <param name="build.main.java.version" value="8"/> -->
598        <param name="build.main.javac" value="${javac8}"/>  <!--       <param name="build.main.javac" value="${javac8}"/> -->
599      </antcall>  <!--     </antcall> -->
600    
601      <antcall target="clean"/>  <!--     <antcall target="clean"/> -->
602      <antcall target="test">  <!--     <antcall target="test"> -->
603        <param name="build.main.java.version" value="9"/>  <!--       <param name="build.main.java.version" value="9"/> -->
604        <param name="build.main.javac" value="${javac9}"/>  <!--       <param name="build.main.javac" value="${javac9}"/> -->
605      </antcall>  <!--     </antcall> -->
606    
607    </target>  <!--   </target> -->
608    
609    
610    
611    <target name="configure-compiler">    <target name="configure-compiler">
612        <fail message="ant version too old">
613          <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
614        </fail>
615    
616      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
617    
# Line 549  Line 632 
632    <!-- Various demos and test programs -->    <!-- Various demos and test programs -->
633    
634    
635    <target name="loops" depends="configure-compiler"    <!-- description="Benchmark from Doug Lea's AQS paper" -->
636            description="Benchmark from Doug Lea's AQS paper">    <target name="loops" depends="configure-compiler">
637    
638      <mkdir dir="${build.loops.dir}"/>      <mkdir dir="${build.loops.dir}"/>
639    
# Line 560  Line 643 
643         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
644        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
645             source="${build.sourcelevel}"             source="${build.sourcelevel}"
646               target="${build.sourcelevel}"
647             encoding="ASCII"
648               fork="true">               fork="true">
649    
650        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 571  Line 656 
656      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
657        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
658      </java>      </java>
   
659    </target>    </target>
660    
661    
662    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
663            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
664    
665      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
666    
# Line 587  Line 671 
671             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
672             includeAntRuntime="false"             includeAntRuntime="false"
673             includeJavaRuntime="false"             includeJavaRuntime="false"
674               encoding="ASCII"
675             executable="${javac9}"             executable="${javac9}"
676             fork="true">             fork="true">
677    
# Line 595  Line 680 
680        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
681        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
682        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
683        </javac>
684      </target>
685    
686    
687      <!-- jsr166 4jdk8 -->
688    
689      <target name="4jdk8compile"
690              depends="configure-compiler"
691              description="Compiles src/jdk8 sources, targeting jdk8">
692    
693        <mkdir dir="${build.4jdk8.classes.dir}"/>
694    
695        <javac srcdir="${4jdk8src.dir}"
696               destdir="${build.4jdk8.classes.dir}"
697               debug="${build.debug}"
698               debuglevel="${build.debuglevel}"
699               deprecation="${build.deprecation}"
700               source="8"
701               target="8"
702               classpath=""
703               bootclasspath="${bootclasspath8}"
704               includeAntRuntime="false"
705               includeJavaRuntime="false"
706               encoding="ASCII"
707               executable="${javac8}"
708               fork="true">
709          <include name="**/*.java"/>
710          <compilerarg value="-Xprefer:source"/>
711          <compilerarg value="-XDignore.symbol.file=true"/>
712          <compilerarg value="-Xlint:all"/>
713          <compilerarg value="-Werror"/>
714          <compilerarg line="${build.args}"/>
715      </javac>      </javac>
716      </target>
717    
718      <target name="4jdk8doclint"
719              depends="configure-compiler"
720              description="Finds doclint warnings">
721    
722        <mkdir dir="${build.4jdk8.classes.dir}"/>
723    
724        <javac srcdir="${4jdk8src.dir}"
725               destdir="${build.4jdk8.classes.dir}"
726               debug="${build.debug}"
727               debuglevel="${build.debuglevel}"
728               deprecation="${build.deprecation}"
729               source="8"
730               target="8"
731               classpath=""
732               bootclasspath="${bootclasspath8}"
733               includeAntRuntime="false"
734               includeJavaRuntime="false"
735               encoding="ASCII"
736               executable="${javac8}"
737               fork="true">
738          <include name="**/*.java"/>
739          <compilerarg value="-Xprefer:source"/>
740          <compilerarg value="-XDignore.symbol.file=true"/>
741          <compilerarg value="-Xlint:all"/>
742          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
743          <compilerarg line="${build.args}"/>
744        </javac>
745    </target>    </target>
746    
747    
748    <!-- jsr166 4jdk7 -->    <target name="4jdk8jar"
749              depends="4jdk8compile"
750              description="Builds library jar from compiled sources">
751    
752    <target name="4jdk7compile"      <jar destfile="${4jdk8product.jar}">
753            depends="configure-compiler"        <fileset dir="${build.4jdk8.classes.dir}"/>
754            description="Compiles src/jdk7 sources, targeting jdk7">        <manifest>
755            <attribute name="Built-By" value="${user.name}"/>
756            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
757          </manifest>
758        </jar>
759      </target>
760    
761    
762      <target name="4jdk8-tck"
763              depends="4jdk8jar"
764              description="Runs tck tests for jsr166-4jdk8 directly">
765    
766        <run-tck-tests
767          target="8"
768          workdir="${build.4jdk8.dir}"
769          classes="${4jdk8product.jar}">
770          <javac-elements>
771            <!-- JDK9+ test classes -->
772            <exclude name="*9Test.java"/>
773            <exclude name="*10Test.java"/>
774            <compilerarg value="-Werror"/>
775          </javac-elements>
776        </run-tck-tests>
777      </target>
778    
779    
780      <target name="4jdk8-jtreg"
781              depends="4jdk8jar"
782              description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
783        <run-jtreg-tests
784           target="8"
785           workdir="${build.4jdk8.dir}"
786           classes="${4jdk8product.jar}"/>
787      </target>
788    
789    
790      <target name="4jdk8-test"
791              depends="4jdk8-tck, 4jdk8-jtreg"
792              description="Runs tck and jtreg tests for jsr166-4jdk8"/>
793    
794    
795      <target name="4jdk8docs"
796              description="Builds javadocs for src/jdk8 to dist dir">
797    
798        <delete dir="${4jdk8docs.dir}"/>
799        <mkdir dir="${4jdk8docs.dir}"/>
800    
801        <javadoc destdir="${4jdk8docs.dir}"
802                 packagenames="none"
803                 link="${java8.api.url}"
804                 overview="${4jdk8src.dir}/intro.html"
805                 access="${build.javadoc.access}"
806                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
807                 classpath=""
808                 executable="${javadoc8}"
809                 failonerror = "true">
810          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
811            <include name="**/*.java"/>
812          </fileset>
813          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
814          <arg value="-XDignore.symbol.file=true"/>
815          <arg value="-tag"/>
816          <arg value="${javadoc.jls.option}"/>
817    <!-- @apiNote currently unused -->
818    <!--       <arg value="-tag"/> -->
819    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
820          <arg value="-tag"/>
821          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
822          <arg value="-tag"/>
823          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
824        </javadoc>
825      </target>
826    
827    
828      <target name="4jdk8dist"
829              depends="4jdk8dist-jar, 4jdk8dist-docs"
830              description="Puts all distributable products in single hierarchy"/>
831    
832    
833      <target name="4jdk8clean"
834              description="Removes all 4jdk8 build products">
835        <delete dir="${build.4jdk8.dir}"/>
836      </target>
837    
838    
839      <target name="4jdk8dist-jar"
840              depends="4jdk8clean, 4jdk8jar">
841        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
842      </target>
843    
844    
845      <target name="4jdk8dist-docs"
846              depends="4jdk8clean, 4jdk8docs">
847        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
848      </target>
849    
850    
851      <!-- jsr166 4jdk7 (no longer maintained) -->
852    
853      <target name="4jdk7compile" depends="configure-compiler">
854      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
855    
856      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 615  Line 859 
859             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
860             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
861             source="6"             source="6"
862               target="6"
863             classpath=""             classpath=""
864             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
865             includeAntRuntime="false"             includeAntRuntime="false"
866             includeJavaRuntime="false"             includeJavaRuntime="false"
867               encoding="ASCII"
868             executable="${javac7}"             executable="${javac7}"
869             fork="true">             fork="true">
870    
# Line 628  Line 874 
874        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
875        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
876        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
877      </javac>      </javac>
878    </target>    </target>
879    
880    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
881      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
882    
883      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 644  Line 886 
886             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
887             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
888             source="6"             source="6"
889               target="6"
890             classpath=""             classpath=""
891             bootclasspath="${bootclasspath7}"             bootclasspath="${bootclasspath6}"
892             includeAntRuntime="false"             includeAntRuntime="false"
893             includeJavaRuntime="false"             includeJavaRuntime="false"
894               encoding="ASCII"
895             executable="${javac8}"             executable="${javac8}"
896             fork="true">             fork="true">
897    
# Line 657  Line 901 
901        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
902        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
903        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
904      </javac>      </javac>
905    </target>    </target>
906    
907      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
908      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
909        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
910          <manifest>
911            <attribute name="Built-By" value="${user.name}"/>
912            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
913          </manifest>
914      </jar>      </jar>
   
915    </target>    </target>
916    
917      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-test-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
918      <run-tck-tests      <run-tck-tests
919        target="7"        target="7"
920        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 685  Line 923 
923          <!-- JDK8+ test classes -->          <!-- JDK8+ test classes -->
924          <exclude name="*8Test.java"/>          <exclude name="*8Test.java"/>
925          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
926            <exclude name="*10Test.java"/>
927          <exclude name="DoubleAccumulatorTest.java"/>          <exclude name="DoubleAccumulatorTest.java"/>
928          <exclude name="DoubleAdderTest.java"/>          <exclude name="DoubleAdderTest.java"/>
929          <exclude name="LongAccumulatorTest.java"/>          <exclude name="LongAccumulatorTest.java"/>
# Line 692  Line 931 
931          <exclude name="CompletableFutureTest.java"/>          <exclude name="CompletableFutureTest.java"/>
932          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
933          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
934            <exclude name="SubmissionPublisherTest.java"/>
935            <compilerarg value="-Werror"/>
936        </javac-elements>        </javac-elements>
937      </run-tck-tests>      </run-tck-tests>
938    </target>    </target>
939    
940      <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
941    <target name="4jdk7-test-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile"  
           description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">  
942    
943      <junit printsummary="true"      <junit printsummary="true"
944             showoutput="true"             showoutput="true"
# Line 721  Line 960 
960    
961        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
962        </test>        </test>
   
963      </junit>      </junit>
964    </target>    </target>
965    
966    <target name="4jdk7-test-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
967      <run-jtreg-tests      <run-jtreg-tests
968         target="7"         target="7"
969         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
970         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
971    </target>    </target>
972    
973      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
974    
975    <target name="4jdk7-test"    <target name="4jdk7docs">
           depends="4jdk7-test-tck, 4jdk7-test-jtreg"  
           description="Runs tck and jtreg tests for jsr166-4jdk7">  
   </target>  
   
   
   <target name="4jdk7docs"  
           description="Builds javadocs for src/jdk7 to dist dir">  
   
976      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
977      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
978    
# Line 752  Line 981 
981               link="${java7.api.url}"               link="${java7.api.url}"
982               overview="${4jdk7src.dir}/intro.html"               overview="${4jdk7src.dir}/intro.html"
983               access="${build.javadoc.access}"               access="${build.javadoc.access}"
984               sourcepath="${4jdk7src.dir}:${jdk7src.dir}"               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
985               classpath=""               classpath=""
986               executable="${javadoc7}">               executable="${javadoc7}"
987                 failonerror = "true">
988        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
989          <include name="**/*.java"/>          <include name="**/*.java"/>
990        </fileset>        </fileset>
# Line 763  Line 993 
993      </javadoc>      </javadoc>
994    </target>    </target>
995    
996      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
997    
998    <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">  
   
999      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1000    </target>    </target>
1001    
1002      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1003      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1004    </target>    </target>
1005    
1006      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1007      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1008    </target>    </target>
1009    
1010    
1011    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1012    
1013      <target name="jsr166xcompile" depends="configure-compiler">
1014      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1015    
1016      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 805  Line 1021 
1021             classpath=""             classpath=""
1022             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1023             source="5"             source="5"
1024               target="5"
1025             includeAntRuntime="false"             includeAntRuntime="false"
1026             includeJavaRuntime="false"             includeJavaRuntime="false"
1027               encoding="ASCII"
1028             executable="${javac7}"             executable="${javac7}"
1029             fork="true">             fork="true">
   
1030        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1031        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1032        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1033        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1034        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1035      </javac>      </javac>
1036    </target>    </target>
1037    
1038      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1039      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1040        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1041          <manifest>
1042            <attribute name="Built-By" value="${user.name}"/>
1043            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1044          </manifest>
1045      </jar>      </jar>
   
1046    </target>    </target>
1047    
1048      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1049      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1050      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1051    
# Line 841  Line 1053 
1053               packagenames="jsr166x.*"               packagenames="jsr166x.*"
1054               link="${java.api.url}"               link="${java.api.url}"
1055               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1056               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1057               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1058               source="5"               source="5"
1059               executable="${javadoc7}">               executable="${javadoc7}"
1060                 failonerror = "true">
1061        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1062        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1063      </javadoc>      </javadoc>
1064    </target>    </target>
1065    
1066      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1067    
1068    <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">  
   
1069      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1070    </target>    </target>
1071    
1072      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1073      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1074    </target>    </target>
1075    
1076    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1077      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1078    </target>    </target>
1079    
   <!-- jsr166y -->  
   
1080    
1081    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1082    
1083      <target name="jsr166ycompile" depends="configure-compiler">
1084      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1085    
1086      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 890  Line 1089 
1089             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1090             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1091             source="6"             source="6"
1092               target="6"
1093             classpath=""             classpath=""
1094             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1095             includeAntRuntime="false"             includeAntRuntime="false"
1096             includeJavaRuntime="false"             includeJavaRuntime="false"
1097               encoding="ASCII"
1098             executable="${javac7}"             executable="${javac7}"
1099             fork="true">             fork="true">
1100    
# Line 902  Line 1103 
1103        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1104        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1105        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1106      </javac>      </javac>
1107    </target>    </target>
1108    
1109      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1110      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1111        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1112          <manifest>
1113            <attribute name="Built-By" value="${user.name}"/>
1114            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1115          </manifest>
1116      </jar>      </jar>
   
1117    </target>    </target>
1118    
1119      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1120      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1121      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1122    
# Line 928  Line 1124 
1124               packagenames="jsr166y.*"               packagenames="jsr166y.*"
1125               link="${java.api.url}"               link="${java.api.url}"
1126               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1127               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1128               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1129               source="6"               source="6"
1130               executable="${javadoc7}">               executable="${javadoc7}"
1131                 failonerror = "true">
1132        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1133        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1134      </javadoc>      </javadoc>
1135    </target>    </target>
1136    
1137      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1138    
1139    <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">  
   
1140      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1141    </target>    </target>
1142    
1143      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1144      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1145    </target>    </target>
1146    
1147    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1148      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1149    </target>    </target>
1150    
1151    
1152    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1153    
1154      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1155      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1156    
1157      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 980  Line 1162 
1162             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1163             classpath=""             classpath=""
1164             source="6"             source="6"
1165               target="6"
1166             includeAntRuntime="false"             includeAntRuntime="false"
1167             includeJavaRuntime="false"             includeJavaRuntime="false"
1168               encoding="ASCII"
1169             executable="${javac7}"             executable="${javac7}"
1170             fork="true">             fork="true">
1171    
# Line 990  Line 1174 
1174        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1175        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1176        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1177      </javac>      </javac>
1178    </target>    </target>
1179    
1180      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1181      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1182        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1183          <manifest>
1184            <attribute name="Built-By" value="${user.name}"/>
1185            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1186          </manifest>
1187      </jar>      </jar>
   
1188    </target>    </target>
1189    
1190      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1191      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1192      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1193    
# Line 1016  Line 1195 
1195               packagenames="extra166y.*"               packagenames="extra166y.*"
1196               link="${java.api.url}"               link="${java.api.url}"
1197               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1198               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1199               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1200               source="6"               source="6"
1201               executable="${javadoc7}">               executable="${javadoc7}">
1202        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1203        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1204      </javadoc>      </javadoc>
1205    </target>    </target>
1206    
1207      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1208    
1209    <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">  
   
1210      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1211    </target>    </target>
1212    
1213      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1214      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1215    </target>    </target>
1216    
1217    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1218      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1219    </target>    </target>
1220    
1221    <!-- jsr166e -->  
1222      <!-- jsr166e (no longer maintained) -->
1223    
1224    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1225    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1226    
1227    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1228      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1229    
1230      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1067  Line 1233 
1233             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1234             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1235             source="${build.jsr166e.java.version}"             source="${build.jsr166e.java.version}"
1236               target="${build.jsr166e.java.version}"
1237             classpath=""             classpath=""
1238             includeAntRuntime="false"             includeAntRuntime="false"
1239             includeJavaRuntime="false"             includeJavaRuntime="false"
# Line 1078  Line 1245 
1245        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1246        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1247        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1248      </javac>      </javac>
1249    </target>    </target>
1250    
   <!-- jsr166e: find doclint errors -->  
1251    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1252      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1253    
1254      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1093  Line 1257 
1257             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1258             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1259             source="${build.jsr166e.java.version}"             source="${build.jsr166e.java.version}"
1260               target="${build.jsr166e.java.version}"
1261             classpath=""             classpath=""
1262             bootclasspath="${bootclasspath7}"             bootclasspath="${bootclasspath6}"
1263             includeAntRuntime="false"             includeAntRuntime="false"
1264             includeJavaRuntime="false"             includeJavaRuntime="false"
1265             executable="${javac8}"             executable="${javac8}"
# Line 1105  Line 1270 
1270        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1271        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1272        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1273      </javac>      </javac>
1274    </target>    </target>
1275    
1276      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1277      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1278        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1279          <manifest>
1280            <attribute name="Built-By" value="${user.name}"/>
1281            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1282          </manifest>
1283      </jar>      </jar>
   
1284    </target>    </target>
1285    
1286      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1287      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1288      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1289    
# Line 1131  Line 1291 
1291               packagenames="jsr166e.*"               packagenames="jsr166e.*"
1292               link="${java.api.url}"               link="${java.api.url}"
1293               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1294               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1295               source="${build.jsr166e.java.version}"               source="${build.jsr166e.java.version}"
1296               executable="${javadoc7}">               executable="${javadoc7}"
1297                 failonerror = "true">
1298        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1299        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1300      </javadoc>      </javadoc>
1301    </target>    </target>
1302    
1303      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-test-tck-one-java-version"  
           depends="jsr166ejar">  
   
1304      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1305      <run-tck-tests      <run-tck-tests
1306        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1307        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1153  Line 1309 
1309        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1310    </target>    </target>
1311    
1312    <target name="jsr166e-test-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1313    
1314  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1315  <!--     <antcall target="jsr166e-test-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1316  <!--       <param name="build.jsr166e.java.version" value="8"/> -->  <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1317  <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->  <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1318  <!--     </antcall> -->  <!--     </antcall> -->
1319    
1320      <antcall target="clean"/>      <antcall target="clean"/>
1321      <antcall target="jsr166e-test-tck-one-java-version">      <antcall target="jsr166e-tck-one-java-version">
1322        <param name="build.jsr166e.java.version" value="7"/>        <param name="build.jsr166e.java.version" value="7"/>
1323        <param name="build.jsr166e.javac" value="${javac7}"/>        <param name="build.jsr166e.javac" value="${javac7}"/>
1324      </antcall>      </antcall>
1325    
1326      <antcall target="clean"/>      <antcall target="clean"/>
1327      <antcall target="jsr166e-test-tck-one-java-version">      <antcall target="jsr166e-tck-one-java-version">
1328        <param name="build.jsr166e.java.version" value="6"/>        <param name="build.jsr166e.java.version" value="6"/>
1329        <param name="build.jsr166e.javac" value="${javac6}"/>        <param name="build.jsr166e.javac" value="${javac6}"/>
1330      </antcall>      </antcall>
1331    </target>    </target>
1332    
1333      <target name="jsr166e-test" depends="jsr166e-tck"/>
1334    
1335    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-test-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
1336    
1337    <target name="jsr166edist"    <target name="jsr166eclean">
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166eclean"  
           description="Removes all jsr166e build products">  
1338      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1339    </target>    </target>
1340    
   
1341    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1342            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1343      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1344    </target>    </target>
1345    
1346    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1347      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1348    </target>    </target>
1349    
# Line 1219  Line 1364 
1364    </target>    </target>
1365    
1366    
1367    <!-- ==============================================================
1368      Experimental errorprone support - http://errorprone.info
1369      You may need to bring your own errorprone jar.
1370    =================================================================== -->
1371      <target name="errorprone"
1372              depends="clean, configure-compiler"
1373              description="Run errorprone over jsr166 source code (experimental)">
1374    
1375        <local name="destdir"/>
1376        <property name="destdir" value="${build.classes.dir}/java.base"/>
1377        <mkdir dir="${destdir}"/>
1378    
1379        <javac srcdir="${src.dir}"
1380               destdir="${destdir}"
1381               debug="${build.debug}"
1382               debuglevel="${build.debuglevel}"
1383               deprecation="${build.deprecation}"
1384               classpath=""
1385               includeAntRuntime="false"
1386               includeJavaRuntime="false"
1387               encoding="ASCII"
1388               executable="${build.main.javac}"
1389               fork="true">
1390    
1391          <include name="**/*.java"/>
1392          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1393          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1394          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1395          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1396          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1397          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1398          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1399          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1400          <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1401          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1402          <compilerarg value="-Xplugin:ErrorProne
1403                              -Xep:IdentityBinaryExpression:WARN
1404                              -Xep:MissingOverride:OFF
1405                              -Xep:MixedArrayDimensions:WARN
1406                              -Xep:RemoveUnusedImports:ERROR
1407                              -Xep:MethodCanBeStatic:WARN"/>
1408          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1409          <compilerarg value="-Xprefer:source"/>
1410          <compilerarg value="-XDignore.symbol.file=true"/>
1411          <compilerarg value="-Xlint:all"/>
1412          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1413          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1414          <compilerarg line="${build.args}"/>
1415        </javac>
1416    
1417        <jar destfile="${product.jar}">
1418          <fileset dir="${destdir}"/>
1419        </jar>
1420    
1421        <run-tck-tests
1422          target="${build.main.java.version}"
1423          workdir="${build.dir}"
1424          classes="${product.jar}">
1425          <javac-elements>
1426            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1427            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1428            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1429            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1430            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1431            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1432            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1433            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1434            <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1435            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1436            <compilerarg value="-Xplugin:ErrorProne
1437                                -Xep:IdentityBinaryExpression:WARN
1438                                -Xep:BoxedPrimitiveConstructor:OFF
1439                                -Xep:HashtableContains:OFF
1440                                -Xep:ModifyingCollectionWithItself:OFF
1441                                -Xep:MissingOverride:OFF
1442                                -Xep:MixedArrayDimensions:WARN
1443                                -Xep:RemoveUnusedImports:ERROR
1444                                -Xep:MethodCanBeStatic:WARN"/>
1445            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1446          </javac-elements>
1447        </run-tck-tests>
1448      </target>
1449    
1450    
1451    <!-- ==============================================================
1452      Running guava tests against jsr166 code
1453    =================================================================== -->
1454    
1455    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1456    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1457    <!-- <property name="guava.version" value="21.0"/> -->
1458    
1459    <!-- HOWTO debug print a path id -->
1460    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1461    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1462    
1463    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1464    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1465    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1466    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1467    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1468    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1469    
1470    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1471    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1472    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1473    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1474    
1475    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1476    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1477    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1478    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1479    
1480    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1481    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1482    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1483    
1484      <target name="init-ivy">
1485        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1486             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1487        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1488                 classpath="${build.dir}/ivy.jar"/>
1489      </target>
1490    
1491      <target name="guava-tests" depends="jar, init-ivy"
1492              description="Guava tests run against jsr166 collections">
1493        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1494        <mkdir dir="${guava.dir}"/>
1495        <ivy:retrieve pathid="guava.testlib.classpath"
1496          type="jar,bundle" inline="true" conf="default,master"
1497          pattern="${guava.dir}/[artifact].[ext]"
1498          organisation="com.google.guava" module="guava-testlib"/>
1499        <property name="guava.version" value="21.0"/>
1500        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1501             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1502        <junit printsummary="true" showoutput="true" haltonfailure="true"
1503               jvm="${java9}" fork="true">
1504          <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1505          <formatter type="brief"/>
1506          <classpath>
1507            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1508            <path refid="guava.testlib.classpath"/>
1509          </classpath>
1510    
1511          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1512          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1513        </junit>
1514      </target>
1515    
1516  </project>  </project>

Legend:
Removed from v.1.172  
changed lines
  Added in v.1.241

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8