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

Diff of /jsr166/build.xml

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

revision 1.159 by jsr166, Fri Oct 3 23:18:13 2014 UTC revision 1.255 by jsr166, Thu Sep 28 01:17:47 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 89  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.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 164  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 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      <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>
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 213  Line 247 
247             source="@{compile-target}"             source="@{compile-target}"
248             target="@{compile-target}"             target="@{compile-target}"
249             classpath="${junit.jar}"             classpath="${junit.jar}"
            bootclasspath="@{classes}:${bootclasspath@{compile-target}}"  
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="-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          <sysproperty key="jsr166.profileTests"     value="${jsr166.profileTests}"/>          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
280          <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
281          <sysproperty key="jsr166.runsPerTest"      value="${jsr166.runsPerTest}"/>  
282            <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
283            <syspropertyset id="system-properties-used-by-tck">
284              <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
285              <propertyref prefix="jsr166."/>
286              <propertyref name="test.timeout.factor"/>
287            </syspropertyset>
288    
289          <classpath>          <classpath>
290            <pathelement location="${junit.jar}"/>            <pathelement location="${junit.jar}"/>
291            <pathelement location="@{workdir}/tck-classes"/>            <pathelement location="@{workdir}/tck-classes"/>
# Line 245  Line 295 
295      </sequential>      </sequential>
296    </macrodef>    </macrodef>
297    
298      <!-- 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}">
306        <patternset id="jdk9.jtreg.tests">
307          <include name="**/*.java"/>
308        </patternset>
309      </fileset>
310    
311      <fileset dir="${jtreg8.src.dir}">
312        <patternset id="jdk8.jtreg.tests">
313          <include name="**/*.java"/>
314        </patternset>
315      </fileset>
316    
317      <fileset dir="${jtreg7.src.dir}">
318        <patternset id="jdk7.jtreg.tests">
319          <include name="**/*.java"/>
320        </patternset>
321      </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 -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}"/>  
     <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"/>
331        <attribute name="verbose" default="${jtreg.verbose}"/>
332      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
333        <element name="jtreg-elements" optional="true"/>
334    
335      <sequential>      <sequential>
336    
337        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
338        <property name="jtreg.verbose" value="nopass,fail,error"/>
339    
340        <local name="modules"/>
341        <condition property="modules">
342          <available file="${jdk@{target}.home}/jmods" type="dir"/>
343        </condition>
344    
345      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
346      <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}"  
347             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
348             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
349             reportDir="@{workdir}/JTreport">        <patternset refid="jdk@{target}.jtreg.tests"/>
350          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
351        <arg value="-Xbootclasspath/p:@{classes}"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
352          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
353        <arg value="-agentvm"/>        <arg value="-agentvm"/>
354        <arg value="-v:nopass,fail"/>        <arg value="-noreport"/>
355          <arg value="-verbose:@{verbose}"/>
356        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
357        <arg value="-automatic"/>        <arg value="-automatic"/>
358        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
359        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
360          <arg line="${jtreg.flags}"/>
361          <jtreg-elements/>
362      </jtreg>      </jtreg>
363      </sequential>      </sequential>
364    </macrodef>    </macrodef>
# Line 286  Line 375 
375    <!-- Main targets -->    <!-- Main targets -->
376    
377    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="9"/>
378    <property name="build.main.javac" value="${javac9}"/>    <!-- Workaround "no nested properties in ant" -->
379      <macrodef name="define-build-main-properties">
380        <attribute name="v"/>
381        <sequential>
382          <property name="build.main.java"    value="${java@{v}}"/>
383          <property name="build.main.javac"   value="${javac@{v}}"/>
384          <property name="build.main.javadoc" value="${javadoc@{v}}"/>
385        </sequential>
386      </macrodef>
387      <define-build-main-properties v="${build.main.java.version}"/>
388    
389    <target name="dists"    <target name="dists"
390            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
391            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
392              <!--
393                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
394              -->
395    
396    <target name="compile"    <target name="compile"
397            depends="configure-compiler"            depends="configure-compiler"
398            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
399    
400      <mkdir dir="${build.classes.dir}"/>      <local name="destdir"/>
401        <property name="destdir" value="${build.classes.dir}/java.base"/>
402    
403        <mkdir dir="${destdir}"/>
404    
405      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
406             destdir="${build.classes.dir}"             destdir="${destdir}"
407             debug="${build.debug}"             debug="${build.debug}"
408             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
409             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
410             classpath=""             classpath=""
411             includeAntRuntime="false"             includeAntRuntime="false"
412             includeJavaRuntime="false"             includeJavaRuntime="false"
413               encoding="ASCII"
414             executable="${build.main.javac}"             executable="${build.main.javac}"
415             fork="true">             fork="true">
416    
417        <include name="**/*.java"/>        <include name="**/*.java"/>
418          <compilerarg value="--patch-module=java.base=${src.dir}"/>
419        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
420        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
421        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
422        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg line="--doclint-format html5"/>
423          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
424          <compilerarg value="-Werror"/>
425        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
426        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
427    
# Line 323  Line 431 
431    
432    <target name="jar"    <target name="jar"
433            depends="compile"            depends="compile"
434            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
435        <local name="subdir"/>
436        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
437      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
438        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
439          <manifest>
440            <attribute name="Built-By" value="${user.name}"/>
441            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
442          </manifest>
443      </jar>      </jar>
444    </target>    </target>
445    
# Line 340  Line 453 
453      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
454      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
455    
456    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
457    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
458    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
459    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
460    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
461      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
462               packagenames="none"               packagenames="none"
463               link="${java9.api.url}"               link="${java9.api.url}"
464               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
465               access="${build.javadoc.access}"               access="${build.javadoc.access}"
466               sourcepath="${src.dir}:${jdk9src.dir}"               sourcepath="${src.dir}"
467               classpath=""               classpath=""
468               executable="${javadoc9}">               source="9"
469                 executable="${build.main.javadoc}">
470        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
471          <include name="**/*.java"/>          <include name="**/*.java"/>
472        </fileset>        </fileset>
473        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
474        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
475        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
476          <arg value="-html5"/>
477          <arg value="--patch-module=java.base=${src.dir}"/>
478        <arg value="-tag"/>        <arg value="-tag"/>
479        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
480    <!-- @apiNote currently unused -->
481    <!--       <arg value="-tag"/> -->
482    <!--       <arg value="apiNote:a:API Note:"/> -->
483        <arg value="-tag"/>        <arg value="-tag"/>
484        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="implSpec:a:Implementation Requirements:"/>
485        <arg value="-tag"/>        <arg value="-tag"/>
486        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implNote:a:Implementation Note:"/>
487        <arg value="-tag"/>  <!-- tags added in jdk9: currently unused -->
488        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
489    <!--       <arg value="revised:X"/> -->
490    <!--       <arg value="-tag"/> -->
491    <!--       <arg value="spec:X"/> -->
492      </javadoc>      </javadoc>
493    </target>    </target>
494    
# Line 385  Line 512 
512        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
513        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
514        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
515          <manifest>
516            <attribute name="Built-By" value="${user.name}"/>
517            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
518          </manifest>
519      </jar>      </jar>
520    </target>    </target>
521    
522    
523    <target name="clean"    <target name="clean"
524            description="Removes all build products">            description="Removes all build products">
   
525      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
526    </target>    </target>
527    
528    
529    <target name="dist-clean"    <target name="dist-clean"
530            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
531      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
532      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
533    </target>    </target>
534    
535    
# Line 416  Line 543 
543      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
544    </target>    </target>
545    
546      <target name="tck"
   <target name="test-tck"  
547            depends="jar"            depends="jar"
548            description="Runs tck tests for main directly">            description="Runs tck tests for src/main directly">
549    
550      <run-tck-tests      <run-tck-tests
551        target="${build.main.java.version}"        target="${build.main.java.version}"
552        workdir="${build.dir}"        workdir="${build.dir}"
553        classes="${product.jar}"/>        classes="${product.jar}">
554          <javac-elements>
555            <compilerarg value="-Werror"/>
556          </javac-elements>
557        </run-tck-tests>
558    </target>    </target>
559    
560    <target name="test-jtreg"    <target name="tck-parallelism-1"
561              description="Runs tck with common pool parallelism 1">
562        <antcall target="tck">
563          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
564        </antcall>
565      </target>
566    
567      <target name="tck-parallelism-0"
568              description="Runs tck with common pool parallelism 0">
569        <antcall target="tck">
570          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
571        </antcall>
572      </target>
573    
574      <target name="tck-security-manager"
575              description="Runs tck with a security manager">
576        <antcall target="tck">
577          <param name="jsr166.useSecurityManager" value="true"/>
578        </antcall>
579      </target>
580    
581      <target name="jtreg"
582            depends="jar"            depends="jar"
583            description="Runs jtreg tests for main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
584      <run-jtreg-tests      <run-jtreg-tests
585         target="${build.main.java.version}"         target="${build.main.java.version}"
586         workdir="${build.dir}"         workdir="${build.dir}"
# Line 437  Line 588 
588    </target>    </target>
589    
590    <target name="test"    <target name="test"
591            depends="test-tck, test-jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
592            description="Runs tck and jtreg tests for main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
593    
594    <target name="test89"  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
595            description="Runs tck and jtreg tests for main for multiple java versions">  
596    <!--     <antcall target="jtreg"> -->
597    <!--       <param name="build.main.java.version" value="8"/> -->
598    <!--       <param name="build.main.javac" value="${javac8}"/> -->
599    <!--     </antcall> -->
600    
601    <!--   </target> -->
602    
603      <target name="test910"
604              description="Runs tck and jtreg tests for src/main for multiple java versions">
605    
606      <antcall target="clean"/>      <antcall target="clean"/>
607      <antcall target="test">      <antcall target="test">
608        <param name="build.main.java.version" value="8"/>        <param name="build.main.java.version" value="9"/>
       <param name="build.main.javac" value="${javac8}"/>  
609      </antcall>      </antcall>
610    
611      <antcall target="clean"/>      <antcall target="clean"/>
612      <antcall target="test">      <antcall target="test">
613        <param name="build.main.java.version" value="9"/>        <param name="build.main.java.version" value="10"/>
       <param name="build.main.javac" value="${javac9}"/>  
614      </antcall>      </antcall>
615    
616        <!-- Clean up to avoid obscure wrong class file version bugs -->
617        <antcall target="clean"/>
618    
619    </target>    </target>
620    
621    
622    
623    <target name="configure-compiler">    <target name="configure-compiler">
624        <fail message="ant version too old">
625          <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
626        </fail>
627    
628      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
629    
# Line 481  Line 644 
644    <!-- Various demos and test programs -->    <!-- Various demos and test programs -->
645    
646    
647    <target name="loops" depends="configure-compiler"    <!-- description="Benchmark from Doug Lea's AQS paper" -->
648            description="Benchmark from Doug Lea's AQS paper">    <target name="loops" depends="configure-compiler">
649    
650      <mkdir dir="${build.loops.dir}"/>      <mkdir dir="${build.loops.dir}"/>
651    
# Line 492  Line 655 
655         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
656        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
657             source="${build.sourcelevel}"             source="${build.sourcelevel}"
658               target="${build.sourcelevel}"
659             encoding="ASCII"
660               fork="true">               fork="true">
661    
662        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 503  Line 668 
668      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
669        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
670      </java>      </java>
671      </target>
672    
673    
674      <target name="compile-test-loops" depends="jar"
675              description="Compiles all the perf tests in src/test/loops">
676    
677        <mkdir dir="${build.dir}/test/loops"/>
678    
679        <javac srcdir="${basedir}/src/test/loops"
680               destdir="${build.dir}/test/loops"
681               debug="${build.debug}"
682               debuglevel="${build.debuglevel}"
683               deprecation="${build.deprecation}"
684               includeAntRuntime="false"
685               includeJavaRuntime="false"
686               encoding="ASCII"
687               executable="${build.main.javac}"
688               fork="true">
689    
690          <include name="*.java"/>
691          <compilerarg value="-XDignore.symbol.file=true"/>
692          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
693          <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
694          <compilerarg line="${build.args}"/>
695        </javac>
696    </target>    </target>
697    
698    
699    <!-- jsr166 4jdk7 -->    <!-- jsr166 4jdk8 -->
700    
701    <target name="4jdk7compile"    <target name="4jdk8compile"
702            depends="configure-compiler"            depends="configure-compiler"
703            description="Compiles src/jdk7 sources, targeting jdk7">            description="Compiles src/jdk8 sources, targeting jdk8">
704    
705        <mkdir dir="${build.4jdk8.classes.dir}"/>
706    
707        <javac srcdir="${4jdk8src.dir}"
708               destdir="${build.4jdk8.classes.dir}"
709               debug="${build.debug}"
710               debuglevel="${build.debuglevel}"
711               deprecation="${build.deprecation}"
712               source="8"
713               target="8"
714               classpath=""
715               bootclasspath="${bootclasspath8}"
716               includeAntRuntime="false"
717               includeJavaRuntime="false"
718               encoding="ASCII"
719               executable="${javac8}"
720               fork="true">
721          <include name="**/*.java"/>
722          <compilerarg value="-Xprefer:source"/>
723          <compilerarg value="-XDignore.symbol.file=true"/>
724          <compilerarg value="-Xlint:all"/>
725          <compilerarg value="-Werror"/>
726          <compilerarg line="${build.args}"/>
727        </javac>
728      </target>
729    
730      <target name="4jdk8doclint"
731              depends="configure-compiler"
732              description="Finds doclint warnings">
733    
734        <mkdir dir="${build.4jdk8.classes.dir}"/>
735    
736        <javac srcdir="${4jdk8src.dir}"
737               destdir="${build.4jdk8.classes.dir}"
738               debug="${build.debug}"
739               debuglevel="${build.debuglevel}"
740               deprecation="${build.deprecation}"
741               source="8"
742               target="8"
743               classpath=""
744               bootclasspath="${bootclasspath8}"
745               includeAntRuntime="false"
746               includeJavaRuntime="false"
747               encoding="ASCII"
748               executable="${javac8}"
749               fork="true">
750          <include name="**/*.java"/>
751          <compilerarg value="-Xprefer:source"/>
752          <compilerarg value="-XDignore.symbol.file=true"/>
753          <compilerarg value="-Xlint:all"/>
754          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
755          <compilerarg line="${build.args}"/>
756        </javac>
757      </target>
758    
759    
760      <target name="4jdk8jar"
761              depends="4jdk8compile"
762              description="Builds library jar from compiled sources">
763    
764        <jar destfile="${4jdk8product.jar}">
765          <fileset dir="${build.4jdk8.classes.dir}"/>
766          <manifest>
767            <attribute name="Built-By" value="${user.name}"/>
768            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
769          </manifest>
770        </jar>
771      </target>
772    
773    
774      <target name="4jdk8-tck"
775              depends="4jdk8jar"
776              description="Runs tck tests for jsr166-4jdk8 directly">
777    
778        <run-tck-tests
779          target="8"
780          workdir="${build.4jdk8.dir}"
781          classes="${4jdk8product.jar}">
782          <javac-elements>
783            <!-- JDK9+ test classes -->
784            <exclude name="*9Test.java"/>
785            <exclude name="*10Test.java"/>
786            <compilerarg value="-Werror"/>
787          </javac-elements>
788        </run-tck-tests>
789      </target>
790    
791    
792      <target name="4jdk8-jtreg"
793              depends="4jdk8jar"
794              description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
795        <run-jtreg-tests
796           target="8"
797           workdir="${build.4jdk8.dir}"
798           classes="${4jdk8product.jar}"/>
799      </target>
800    
801    
802      <target name="4jdk8-test"
803              depends="4jdk8-tck, 4jdk8-jtreg"
804              description="Runs tck and jtreg tests for jsr166-4jdk8"/>
805    
806    
807      <target name="4jdk8docs"
808              description="Builds javadocs for src/jdk8 to dist dir">
809    
810        <delete dir="${4jdk8docs.dir}"/>
811        <mkdir dir="${4jdk8docs.dir}"/>
812    
813        <javadoc destdir="${4jdk8docs.dir}"
814                 packagenames="none"
815                 link="${java8.api.url}"
816                 overview="${4jdk8src.dir}/intro.html"
817                 access="${build.javadoc.access}"
818                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
819                 classpath=""
820                 source="8"
821                 executable="${javadoc8}"
822                 failonerror = "true">
823          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
824            <include name="**/*.java"/>
825          </fileset>
826          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
827          <arg value="-XDignore.symbol.file=true"/>
828          <arg value="-tag"/>
829          <arg value="${javadoc.jls.option}"/>
830    <!-- @apiNote currently unused -->
831    <!--       <arg value="-tag"/> -->
832    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
833          <arg value="-tag"/>
834          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
835          <arg value="-tag"/>
836          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
837        </javadoc>
838      </target>
839    
840    
841      <target name="4jdk8dist"
842              depends="4jdk8dist-jar, 4jdk8dist-docs"
843              description="Puts all distributable products in single hierarchy"/>
844    
845    
846      <target name="4jdk8clean"
847              description="Removes all 4jdk8 build products">
848        <delete dir="${build.4jdk8.dir}"/>
849      </target>
850    
851    
852      <target name="4jdk8dist-jar"
853              depends="4jdk8clean, 4jdk8jar">
854        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
855      </target>
856    
857    
858      <target name="4jdk8dist-docs"
859              depends="4jdk8clean, 4jdk8docs">
860        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
861      </target>
862    
863    
864      <!-- jsr166 4jdk7 (no longer maintained) -->
865    
866      <target name="4jdk7compile" depends="configure-compiler">
867      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
868    
869      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 521  Line 872 
872             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
873             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
874             source="6"             source="6"
875               target="6"
876             classpath=""             classpath=""
877             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
878             includeAntRuntime="false"             includeAntRuntime="false"
879             includeJavaRuntime="false"             includeJavaRuntime="false"
880               encoding="ASCII"
881             executable="${javac7}"             executable="${javac7}"
882             fork="true">             fork="true">
883    
# Line 532  Line 885 
885        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
886        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
887        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
888          <compilerarg value="-Werror"/>
889        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
890      </javac>      </javac>
891    </target>    </target>
892    
893    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
894      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
895    
896      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 549  Line 899 
899             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
900             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
901             source="6"             source="6"
902               target="6"
903             classpath=""             classpath=""
904             bootclasspath="${bootclasspath7}"             bootclasspath="${bootclasspath6}"
905             includeAntRuntime="false"             includeAntRuntime="false"
906             includeJavaRuntime="false"             includeJavaRuntime="false"
907               encoding="ASCII"
908             executable="${javac8}"             executable="${javac8}"
909             fork="true">             fork="true">
910    
# Line 562  Line 914 
914        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
915        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
916        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
917      </javac>      </javac>
918    </target>    </target>
919    
920      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
921      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
922        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
923          <manifest>
924            <attribute name="Built-By" value="${user.name}"/>
925            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
926          </manifest>
927      </jar>      </jar>
   
928    </target>    </target>
929    
930      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-test-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
931      <run-tck-tests      <run-tck-tests
932        target="7"        target="7"
933        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 590  Line 936 
936          <!-- JDK8+ test classes -->          <!-- JDK8+ test classes -->
937          <exclude name="*8Test.java"/>          <exclude name="*8Test.java"/>
938          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
939            <exclude name="*10Test.java"/>
940          <exclude name="DoubleAccumulatorTest.java"/>          <exclude name="DoubleAccumulatorTest.java"/>
941          <exclude name="DoubleAdderTest.java"/>          <exclude name="DoubleAdderTest.java"/>
942          <exclude name="LongAccumulatorTest.java"/>          <exclude name="LongAccumulatorTest.java"/>
# Line 597  Line 944 
944          <exclude name="CompletableFutureTest.java"/>          <exclude name="CompletableFutureTest.java"/>
945          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
946          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
947            <exclude name="SubmissionPublisherTest.java"/>
948            <compilerarg value="-Werror"/>
949        </javac-elements>        </javac-elements>
950      </run-tck-tests>      </run-tck-tests>
951    </target>    </target>
952    
953      <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
954    <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)">  
955    
956      <junit printsummary="true"      <junit printsummary="true"
957             showoutput="true"             showoutput="true"
# Line 626  Line 973 
973    
974        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
975        </test>        </test>
   
976      </junit>      </junit>
977    </target>    </target>
978    
979    <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">  
980      <run-jtreg-tests      <run-jtreg-tests
981         target="7"         target="7"
982         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
983         classes="${4jdk7product.jar}"         classes="${4jdk7product.jar}"/>
        jtregflags="-exclude:${jtreg.src.dir}/jdk8tests"/>  
   </target>  
   
   
   <target name="4jdk7-test"  
           depends="4jdk7-test-tck, 4jdk7-test-jtreg"  
           description="Runs tck and jtreg tests for jsr166-4jdk7">  
984    </target>    </target>
985    
986      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
987    
988    <target name="4jdk7docs"    <target name="4jdk7docs">
           description="Builds javadocs for src/jdk7 to dist dir">  
   
989      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
990      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
991    
# Line 658  Line 994 
994               link="${java7.api.url}"               link="${java7.api.url}"
995               overview="${4jdk7src.dir}/intro.html"               overview="${4jdk7src.dir}/intro.html"
996               access="${build.javadoc.access}"               access="${build.javadoc.access}"
997               sourcepath="${4jdk7src.dir}:${jdk7src.dir}"               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
998               classpath=""               classpath=""
999               executable="${javadoc7}">               executable="${javadoc7}"
1000                 failonerror = "true">
1001        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1002          <include name="**/*.java"/>          <include name="**/*.java"/>
1003        </fileset>        </fileset>
# Line 669  Line 1006 
1006      </javadoc>      </javadoc>
1007    </target>    </target>
1008    
1009      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1010    
1011    <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">  
   
1012      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1013    </target>    </target>
1014    
1015      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1016      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1017    </target>    </target>
1018    
1019      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1020      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1021    </target>    </target>
1022    
1023    
1024    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1025    
1026      <target name="jsr166xcompile" depends="configure-compiler">
1027      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1028    
1029      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 711  Line 1034 
1034             classpath=""             classpath=""
1035             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1036             source="5"             source="5"
1037               target="5"
1038             includeAntRuntime="false"             includeAntRuntime="false"
1039             includeJavaRuntime="false"             includeJavaRuntime="false"
1040               encoding="ASCII"
1041             executable="${javac7}"             executable="${javac7}"
1042             fork="true">             fork="true">
   
1043        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1044        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1045        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1046          <compilerarg value="-Werror"/>
1047        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1048      </javac>      </javac>
1049    </target>    </target>
1050    
1051      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1052      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1053        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1054          <manifest>
1055            <attribute name="Built-By" value="${user.name}"/>
1056            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1057          </manifest>
1058      </jar>      </jar>
   
1059    </target>    </target>
1060    
1061      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1062      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1063      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1064    
# Line 746  Line 1066 
1066               packagenames="jsr166x.*"               packagenames="jsr166x.*"
1067               link="${java.api.url}"               link="${java.api.url}"
1068               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1069               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1070               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1071               source="5"               source="5"
1072               executable="${javadoc7}">               executable="${javadoc7}"
1073                 failonerror = "true">
1074        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1075        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1076      </javadoc>      </javadoc>
1077    </target>    </target>
1078    
1079      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1080    
1081    <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">  
   
1082      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1083    </target>    </target>
1084    
1085      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1086      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1087    </target>    </target>
1088    
1089    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1090      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1091    </target>    </target>
1092    
   <!-- jsr166y -->  
1093    
1094      <!-- jsr166y (no longer maintained) -->
1095    
1096    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1097      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1098    
1099      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 795  Line 1102 
1102             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1103             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1104             source="6"             source="6"
1105               target="6"
1106             classpath=""             classpath=""
1107             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1108             includeAntRuntime="false"             includeAntRuntime="false"
1109             includeJavaRuntime="false"             includeJavaRuntime="false"
1110               encoding="ASCII"
1111             executable="${javac7}"             executable="${javac7}"
1112             fork="true">             fork="true">
1113    
1114        <include name="jsr166y/**/*.java"/>        <include name="jsr166y/**/*.java"/>
1115        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1116        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1117          <compilerarg value="-Werror"/>
1118        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1119      </javac>      </javac>
1120    </target>    </target>
1121    
1122      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1123      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1124        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1125          <manifest>
1126            <attribute name="Built-By" value="${user.name}"/>
1127            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1128          </manifest>
1129      </jar>      </jar>
   
1130    </target>    </target>
1131    
1132      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1133      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1134      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1135    
# Line 832  Line 1137 
1137               packagenames="jsr166y.*"               packagenames="jsr166y.*"
1138               link="${java.api.url}"               link="${java.api.url}"
1139               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1140               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1141               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1142               source="6"               source="6"
1143               executable="${javadoc7}">               executable="${javadoc7}"
1144                 failonerror = "true">
1145        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1146        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1147      </javadoc>      </javadoc>
1148    </target>    </target>
1149    
1150      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1151    
1152    <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">  
   
1153      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1154    </target>    </target>
1155    
1156      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1157      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1158    </target>    </target>
1159    
1160    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1161      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1162    </target>    </target>
1163    
1164    
1165    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1166    
1167      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1168      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1169    
1170      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 884  Line 1175 
1175             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1176             classpath=""             classpath=""
1177             source="6"             source="6"
1178               target="6"
1179             includeAntRuntime="false"             includeAntRuntime="false"
1180             includeJavaRuntime="false"             includeJavaRuntime="false"
1181               encoding="ASCII"
1182             executable="${javac7}"             executable="${javac7}"
1183             fork="true">             fork="true">
1184    
1185        <include name="extra166y/**/*.java"/>        <include name="extra166y/**/*.java"/>
1186        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1187        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1188          <compilerarg value="-Werror"/>
1189        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1190      </javac>      </javac>
1191    </target>    </target>
1192    
1193      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1194      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1195        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1196          <manifest>
1197            <attribute name="Built-By" value="${user.name}"/>
1198            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1199          </manifest>
1200      </jar>      </jar>
   
1201    </target>    </target>
1202    
1203      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1204      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1205      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1206    
# Line 919  Line 1208 
1208               packagenames="extra166y.*"               packagenames="extra166y.*"
1209               link="${java.api.url}"               link="${java.api.url}"
1210               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1211               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1212               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1213               source="6"               source="6"
1214               executable="${javadoc7}">               executable="${javadoc7}">
1215        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1216        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1217      </javadoc>      </javadoc>
1218    </target>    </target>
1219    
1220      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1221    
1222    <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">  
   
1223      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1224    </target>    </target>
1225    
1226      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1227      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1228    </target>    </target>
1229    
1230    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1231      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1232    </target>    </target>
1233    
1234    <!-- jsr166e -->  
1235      <!-- jsr166e (no longer maintained) -->
1236    
1237    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1238    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1239    
1240    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1241      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1242    
1243      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 970  Line 1246 
1246             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1247             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1248             source="${build.jsr166e.java.version}"             source="${build.jsr166e.java.version}"
1249               target="${build.jsr166e.java.version}"
1250             classpath=""             classpath=""
1251             includeAntRuntime="false"             includeAntRuntime="false"
1252             includeJavaRuntime="false"             includeJavaRuntime="false"
# Line 979  Line 1256 
1256        <include name="jsr166e/**/*.java"/>        <include name="jsr166e/**/*.java"/>
1257        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1258        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1259          <compilerarg value="-Werror"/>
1260        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1261      </javac>      </javac>
1262    </target>    </target>
1263    
   <!-- jsr166e: find doclint errors -->  
1264    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1265      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1266    
1267      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 995  Line 1270 
1270             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1271             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1272             source="${build.jsr166e.java.version}"             source="${build.jsr166e.java.version}"
1273               target="${build.jsr166e.java.version}"
1274             classpath=""             classpath=""
1275             bootclasspath="${bootclasspath7}"             bootclasspath="${bootclasspath6}"
1276             includeAntRuntime="false"             includeAntRuntime="false"
1277             includeJavaRuntime="false"             includeJavaRuntime="false"
1278             executable="${javac8}"             executable="${javac8}"
# Line 1005  Line 1281 
1281        <include name="jsr166e/**/*.java"/>        <include name="jsr166e/**/*.java"/>
1282        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1283        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1284          <compilerarg value="-Werror"/>
1285        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1286      </javac>      </javac>
1287    </target>    </target>
1288    
1289      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1290      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1291        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1292          <manifest>
1293            <attribute name="Built-By" value="${user.name}"/>
1294            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1295          </manifest>
1296      </jar>      </jar>
   
1297    </target>    </target>
1298    
1299      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1300      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1301      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1302    
# Line 1032  Line 1304 
1304               packagenames="jsr166e.*"               packagenames="jsr166e.*"
1305               link="${java.api.url}"               link="${java.api.url}"
1306               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1307               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1308               source="${build.jsr166e.java.version}"               source="${build.jsr166e.java.version}"
1309               executable="${javadoc7}">               executable="${javadoc7}"
1310                 failonerror = "true">
1311        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1312        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1313      </javadoc>      </javadoc>
1314    </target>    </target>
1315    
1316      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-test-tck-one-java-version"  
           depends="jsr166ejar">  
   
1317      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1318      <run-tck-tests      <run-tck-tests
1319        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1320        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1054  Line 1322 
1322        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1323    </target>    </target>
1324    
1325    <target name="jsr166e-test-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1326    
1327  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1328  <!--     <antcall target="jsr166e-test-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1329  <!--       <param name="build.jsr166e.java.version" value="8"/> -->  <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1330  <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->  <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1331  <!--     </antcall> -->  <!--     </antcall> -->
1332    
1333      <antcall target="clean"/>      <antcall target="clean"/>
1334      <antcall target="jsr166e-test-tck-one-java-version">      <antcall target="jsr166e-tck-one-java-version">
1335        <param name="build.jsr166e.java.version" value="7"/>        <param name="build.jsr166e.java.version" value="7"/>
1336        <param name="build.jsr166e.javac" value="${javac7}"/>        <param name="build.jsr166e.javac" value="${javac7}"/>
1337      </antcall>      </antcall>
1338    
1339      <antcall target="clean"/>      <antcall target="clean"/>
1340      <antcall target="jsr166e-test-tck-one-java-version">      <antcall target="jsr166e-tck-one-java-version">
1341        <param name="build.jsr166e.java.version" value="6"/>        <param name="build.jsr166e.java.version" value="6"/>
1342        <param name="build.jsr166e.javac" value="${javac6}"/>        <param name="build.jsr166e.javac" value="${javac6}"/>
1343      </antcall>      </antcall>
1344    </target>    </target>
1345    
1346      <target name="jsr166e-test" depends="jsr166e-tck"/>
1347    
1348    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-test-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
   
   <target name="jsr166edist"  
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
1349    
1350    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1351      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1352    </target>    </target>
1353    
   
1354    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1355            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1356      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1357    </target>    </target>
1358    
1359    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1360      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1361    </target>    </target>
1362    
# Line 1108  Line 1365 
1365    
1366    <target name="lint">    <target name="lint">
1367      <antcall target="dists">      <antcall target="dists">
1368          <param name="build.javadoc.access" value="public"/>
1369        </antcall>
1370      </target>
1371    
1372    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1373      <target name="lint-private">
1374        <antcall target="dist">
1375        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1376      </antcall>      </antcall>
1377    </target>    </target>
1378    
1379    
1380    <!-- ==============================================================
1381      Experimental errorprone support - http://errorprone.info
1382    =================================================================== -->
1383      <property name="errorprone.jar" location="${lib.dir}/error_prone_ant-2.0.21.jar"/>
1384      <target name="errorprone"
1385              depends="clean, configure-compiler"
1386              description="Run errorprone over jsr166 source code (experimental)">
1387    
1388        <local name="destdir"/>
1389        <property name="destdir" value="${build.classes.dir}/java.base"/>
1390        <mkdir dir="${destdir}"/>
1391    
1392        <javac srcdir="${src.dir}"
1393               destdir="${destdir}"
1394               debug="${build.debug}"
1395               debuglevel="${build.debuglevel}"
1396               deprecation="${build.deprecation}"
1397               classpath=""
1398               includeAntRuntime="false"
1399               includeJavaRuntime="false"
1400               encoding="ASCII"
1401               executable="${build.main.javac}"
1402               fork="true">
1403    
1404          <include name="**/*.java"/>
1405          <compilerarg line="-processorpath ${errorprone.jar}"/>
1406          <compilerarg value="-Xplugin:ErrorProne
1407                              -Xep:IdentityBinaryExpression:WARN
1408                              -Xep:MissingOverride:OFF
1409                              -Xep:MixedArrayDimensions:WARN
1410                              -Xep:RemoveUnusedImports:ERROR
1411                              -Xep:ClassName:ERROR
1412                              -Xep:MultipleTopLevelClasses:ERROR
1413                              -Xep:EmptyIf:ERROR
1414                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1415                              -Xep:RedundantThrows:ERROR
1416                              -Xep:MethodCanBeStatic:WARN"/>
1417          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1418          <compilerarg value="-Xprefer:source"/>
1419          <compilerarg value="-XDignore.symbol.file=true"/>
1420          <compilerarg value="-Xlint:all"/>
1421          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1422          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1423          <compilerarg line="${build.args}"/>
1424        </javac>
1425    
1426        <jar destfile="${product.jar}">
1427          <fileset dir="${destdir}"/>
1428        </jar>
1429    
1430        <run-tck-tests
1431          target="${build.main.java.version}"
1432          workdir="${build.dir}"
1433          classes="${product.jar}">
1434          <javac-elements>
1435            <compilerarg line="-processorpath ${errorprone.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:ClassName:ERROR
1445                                -Xep:MultipleTopLevelClasses:ERROR
1446                                -Xep:EmptyIf:ERROR
1447                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1448                                -Xep:RedundantThrows:ERROR
1449                                -Xep:MethodCanBeStatic:WARN"/>
1450            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1451          </javac-elements>
1452        </run-tck-tests>
1453      </target>
1454    
1455      <!-- ant errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1456      <target name="errorprone-jtreg"
1457              depends="jar"
1458              description="Run errorprone over jtreg tests (experimental)">
1459    
1460        <run-jtreg-tests
1461           target="${build.main.java.version}"
1462           workdir="${build.dir}"
1463           classes="${product.jar}"
1464           verbose="all">
1465          <jtreg-elements>
1466            <arg value="-javacoption:-processorpath"/>
1467            <arg value="-javacoption:${errorprone.jar}"/>
1468            <arg value="-javacoption:-Xplugin:ErrorProne
1469                                -Xep:IdentityBinaryExpression:WARN
1470                                -Xep:BoxedPrimitiveConstructor:OFF
1471                                -Xep:HashtableContains:OFF
1472                                -Xep:ModifyingCollectionWithItself:OFF
1473                                -Xep:MissingOverride:OFF
1474                                -Xep:MixedArrayDimensions:WARN
1475                                -Xep:RemoveUnusedImports:ERROR
1476                                -Xep:ClassName:ERROR
1477                                -Xep:MultipleTopLevelClasses:ERROR
1478                                -Xep:EmptyIf:ERROR
1479                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1480                                -Xep:RedundantThrows:ERROR
1481                                -Xep:MethodCanBeStatic:WARN"/>
1482          </jtreg-elements>
1483        </run-jtreg-tests>
1484      </target>
1485    
1486    
1487    <!-- ==============================================================
1488      Running guava tests against jsr166 code
1489    =================================================================== -->
1490    
1491    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1492    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1493    <!-- <property name="guava.version" value="21.0"/> -->
1494    
1495    <!-- HOWTO debug print a path id -->
1496    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1497    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1498    
1499    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1500    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1501    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1502    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1503    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1504    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1505    
1506    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1507    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1508    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1509    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1510    
1511    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1512    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1513    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1514    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1515    
1516    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1517    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1518    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1519    
1520      <target name="init-ivy">
1521        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1522             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1523        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1524                 classpath="${build.dir}/ivy.jar"/>
1525      </target>
1526    
1527      <target name="guava-tests" depends="jar, init-ivy"
1528              description="Guava tests run against jsr166 collections">
1529        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1530        <mkdir dir="${guava.dir}"/>
1531        <ivy:retrieve pathid="guava.testlib.classpath"
1532          type="jar,bundle" inline="true" conf="default,master"
1533          pattern="${guava.dir}/[artifact].[ext]"
1534          organisation="com.google.guava" module="guava-testlib"/>
1535        <property name="guava.version" value="21.0"/>
1536        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1537             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1538        <junit printsummary="true" showoutput="true" haltonfailure="true"
1539               jvm="${build.main.java}" fork="true">
1540          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1541          <formatter type="brief"/>
1542          <classpath>
1543            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1544            <path refid="guava.testlib.classpath"/>
1545          </classpath>
1546    
1547          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1548          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1549        </junit>
1550      </target>
1551    
1552  </project>  </project>

Legend:
Removed from v.1.159  
changed lines
  Added in v.1.255

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