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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.149  
changed lines
  Added in v.1.243

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8