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

Diff of /jsr166/build.xml

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

revision 1.95 by jsr166, Mon Jan 14 19:22:27 2013 UTC revision 1.300 by jsr166, Sat Jul 13 18:31:40 2019 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage">  <project name="jsr166" default="usage"
2      xmlns:if="ant:if"
3      xmlns:unless="ant:unless"
4      xmlns:ivy="antlib:org.apache.ivy.ant">
5    
6    <description>    <description>
7  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 6  Line 9 
9    
10    Usage: ant [target]    Usage: ant [target]
11    
12      See http://gee.cs.oswego.edu/dl/concurrency-interest/index.html for
13      more details.
14    
15    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
16    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
17    
18      The repository contains all dependencies except for ant and the JDK
19      itself.  Because the JDK version matters and because different
20      targets require different JDKs, we assume that users have created a
21      hierarchy containing:
22      $HOME/jdk/jdk8
23      $HOME/jdk/jdk9
24      $HOME/jdk/jdk10
25      $HOME/jdk/jdk11
26      $HOME/jdk/jdk12
27      $HOME/jdk/jdk13
28      $HOME/jdk/jdk14
29      where each of the above is a JDK or a symlink to same, and
30      $HOME/jdk/src/jdk8
31      $HOME/jdk/src/jdk9
32      $HOME/jdk/src/jdk10
33      $HOME/jdk/src/jdk11
34      $HOME/jdk/src/jdk12
35      $HOME/jdk/src/jdk13
36      $HOME/jdk/src/jdk14
37      where each of the above is a complete JDK source tree
38      (e.g. mercurial forest) or a symlink to same.
39    
40      Alternatively, define ant variables thus:
41      ant -Djdk$N.home=... -Djdk$N.src.home=...
42      for $N in 8 .. 14 ...
43    
44      As of 2016-03, the sources in src/main are for jdk9+ only.
45  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
46    </description>    </description>
47    
48    <target name="usage" description="Advises user to run with -projecthelp">    <!-- Run 'ant -projecthelp' (default target) -->
49      <echo>Run "ant -projecthelp" for full usage information.</echo>    <target name="usage">
50        <java classname="org.apache.tools.ant.Main">
51          <arg value="-projecthelp" />
52        </java>
53    </target>    </target>
54    
55      <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
56    
57    <!-- User-specific settings -->    <!-- User-specific settings -->
58    <property file="user.properties"/>    <property file="user.properties"/>
59    
60    
61    <!-- Compilation options -->    <!-- Compilation options -->
   <property name="build.sourcelevel"    value="1.6"/>  
62    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
63    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
64    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
65      <property name="build.javadoc.access" value="protected"/>
66    
67    <!-- Build locations -->    <!-- Build locations -->
68    <property name="build.dir"                   location="build"/>    <property name="build.dir"                   location="build"/>
69    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
70    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
71    <property name="build.loops.dir"             location="${build.dir}/loops"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
   <property name="build.lib.dir"               location="${build.dir}/lib"/>  
   <property name="build.javadocs.dir"          location="${build.dir}/javadocs"/>  
   <property name="build.reports.dir"           location="${build.dir}/reports"/>  
   
   <property name="build.jdk7.dir"              location="${build.dir}/jdk7"/>  
   <property name="build.jdk7.lib.dir"          location="${build.jdk7.dir}"/>  
   <property name="build.jdk7.classes.dir"      location="${build.jdk7.dir}/classes"/>  
   <property name="build.jdk7.docs.dir"         location="${build.jdk7.dir}/docs"/>  
72    
73    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
74    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
75    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
76      <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
77    
78      <property name="build.4jdk8.dir"             location="${build.dir}/jsr166-4jdk8"/>
79      <property name="build.4jdk8.classes.dir"     location="${build.4jdk8.dir}/classes"/>
80      <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/>
81      <property name="build.4jdk8.docs.dir"        location="${build.4jdk8.dir}/docs"/>
82    
83      <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
84    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
   <property name="build.jsr166ylib.dir"        location="${build.dir}/jsr166ylib"/>  
   <property name="build.jsr166yjavadocs.dir"   location="${build.dir}/jsr166yjavadocs"/>  
   
85    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
   <property name="build.jsr166elib.dir"        location="${build.dir}/jsr166elib"/>  
   <property name="build.jsr166ejavadocs.dir"   location="${build.dir}/jsr166ejavadocs"/>  
   
86    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
   <property name="build.extra166ylib.dir"      location="${build.dir}/extra166ylib"/>  
   <property name="build.extra166yjavadocs.dir" location="${build.dir}/extra166yjavadocs"/>  
87    
88    <!-- JDK binary locations -->    <property name="build.jsr166x.classes.dir"   location="${build.jsr166x.dir}/classes"/>
89      <property name="build.jsr166y.classes.dir"   location="${build.jsr166y.dir}/classes"/>
90      <property name="build.jsr166e.classes.dir"   location="${build.jsr166e.dir}/classes"/>
91      <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
92    
93      <!-- JDK locations -->
94    <property name="jdks.home"  location="${user.home}/jdk"/>    <property name="jdks.home"  location="${user.home}/jdk"/>
95    
96    <macrodef name="defjdklocations">    <macrodef name="defjdklocations">
97      <attribute name="v"/>      <attribute name="v"/>
98      <sequential>      <sequential>
99      <property name="jdk@{v}.home"  location="${jdks.home}/jdk@{v}"/>      <property name="jdk@{v}.home"     location="${jdks.home}/jdk@{v}"/>
100      <property name="javac@{v}"     location="${jdk@{v}.home}/bin/javac"/>      <property name="java@{v}"         location="${jdk@{v}.home}/bin/java"/>
101      <property name="javadoc@{v}"   location="${jdk@{v}.home}/bin/javadoc"/>      <property name="javac@{v}"        location="${jdk@{v}.home}/bin/javac"/>
102      <property name="bootdir@{v}"   location="${jdk@{v}.home}/jre/lib"/>      <property name="javadoc@{v}"      location="${jdk@{v}.home}/bin/javadoc"/>
103      <property name="bootclasspath@{v}"        <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
104       value="${bootdir@{v}}/resources.jar:${bootdir@{v}}/rt.jar:${bootdir@{v}}/jsse.jar:${bootdir@{v}}/jce.jar:${bootdir@{v}}/:${bootdir@{v}}/charsets.jar"/>      <local name="have.java.base"/>
105        <available property="have.java.base"
106          file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/>
107        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"
108          if:set="have.java.base"/>
109        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
110          unless:set="have.java.base"/>
111        <local name="modules"/>
112        <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/>
113        <local name="boot.jar.dir"/>
114        <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
115        <path id="bootclasspath@{v}" unless:set="modules">
116          <pathelement path="${boot.jar.dir}/resources.jar"/>
117          <pathelement path="${boot.jar.dir}/rt.jar"/>
118          <pathelement path="${boot.jar.dir}/jsse.jar"/>
119          <pathelement path="${boot.jar.dir}/jce.jar"/>
120          <pathelement path="${boot.jar.dir}/charsets.jar"/>
121        </path>
122        <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
123        </sequential>
124      </macrodef>
125    
126      <macrodef name="mirror-dir">
127        <attribute name="src"/>
128        <attribute name="dst"/>
129        <sequential>
130        <delete dir="@{dst}"/>
131        <mkdir dir="@{dst}"/>
132        <copy todir="@{dst}" preservelastmodified="true">
133          <fileset dir="@{src}"/>
134        </copy>
135      </sequential>      </sequential>
136    </macrodef>    </macrodef>
137    
138    <defjdklocations v="6"/>    <defjdklocations v="6"/>
139    <defjdklocations v="7"/>    <defjdklocations v="7"/>
140    <defjdklocations v="8"/>    <defjdklocations v="8"/>
141      <defjdklocations v="9"/>
142      <defjdklocations v="10"/>
143      <defjdklocations v="11"/>
144      <defjdklocations v="12"/>
145      <defjdklocations v="13"/>
146      <defjdklocations v="14"/>
147    
148    <!-- Source locations -->    <!-- Source locations -->
149    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
150    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
151    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
152    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
153    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
154      <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
155      <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
156      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
157      <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
158      <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
159      <property name="jtreg13.src.dir"      location="${test.src.dir}/jtreg"/>
160      <property name="jtreg14.src.dir"      location="${test.src.dir}/jtreg"/>
161      <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
162    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
163    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
164    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
165    <property name="jdk7src.dir"          location="${topsrc.dir}/jdk7"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
166      <property name="4jdk8src.dir"         location="${topsrc.dir}/jdk8"/>
167    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
168    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
169    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
170    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
   <property name="jdksrc.dir"           location="/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"/>  
171    
172    <!-- Distribution locations -->    <!-- Javadoc locations -->
173    <property name="dist.javadocs.dir"           location="${dist.dir}/docs"/>    <property name="docs.dir"          location="${build.dir}/docs"/>
174    <property name="dist.jdk7.docs.dir"          location="${dist.dir}/jsr166-jdk7docs"/>    <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
175    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>    <property name="4jdk8docs.dir"     location="${build.4jdk8.dir}/docs"/>
176    <property name="dist.jsr166yjavadocs.dir"    location="${dist.dir}/jsr166ydocs"/>    <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
177    <property name="dist.jsr166ejavadocs.dir"    location="${dist.dir}/jsr166edocs"/>    <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
178    <property name="dist.extra166yjavadocs.dir"  location="${dist.dir}/extra166ydocs"/>    <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
179      <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
180    
181      <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
182      <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
183      <property name="dist.4jdk8docs.dir"     location="${dist.dir}/jsr166-4jdk8docs"/>
184      <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
185      <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
186      <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
187      <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
188    
189    <!-- Jar locations -->    <!-- Jar locations -->
190    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
191    <property name="jdk7product.jar"      location="${build.jdk7.lib.dir}/jsr166-jdk7.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
192    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
193    <property name="jsr166yproduct.jar"   location="${build.jsr166ylib.dir}/jsr166y.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
194    <property name="jsr166eproduct.jar"   location="${build.jsr166elib.dir}/jsr166e.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
195    <property name="extra166yproduct.jar" location="${build.extra166ylib.dir}/extra166y.jar"/>    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
196    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
197      <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
198    <!-- Bootclasspath argument -->  
199    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
200      <!-- Switched to https: in 2017-10 - JDK-8190312 -->
201      <property name="java5.docroot.url"  value="https://docs.oracle.com/javase/1.5.0/docs"/>
202      <property name="java6.docroot.url"  value="https://docs.oracle.com/javase/6/docs"/>
203      <property name="java7.docroot.url"  value="https://docs.oracle.com/javase/7/docs"/>
204      <property name="java8.docroot.url"  value="https://docs.oracle.com/javase/8/docs"/>
205      <property name="java9.docroot.url"  value="https://docs.oracle.com/javase/9/docs"/>
206      <property name="java10.docroot.url" value="https://docs.oracle.com/javase/10/docs"/>
207      <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
208      <property name="java12.docroot.url" value="https://docs.oracle.com/en/java/javase/12/docs"/>
209      <!-- The location of jdk early access docs (RIP) -->
210      <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
211      <!-- <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/> -->
212      <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
213    <!--   <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> -->
214      <property name="java13.docroot.url" value="https://download.java.net/java/early_access/jdk13/docs"/>
215      <property name="java14.docroot.url" value="https://download.java.net/java/early_access/jdk14/docs"/>
216      <!-- Default jdk doc location (latest stable LTS release seems best) -->
217      <property name="java.docroot.url"   value="${java11.docroot.url}"/>
218    
219    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
220    <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
221    <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>    <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
222    <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
223      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
224    <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
225    <!-- The below does not yet exist as of 2012-11 -->    <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
226    <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->    <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
227    <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>    <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
228      <property name="java13.api.url"     value="${java13.docroot.url}/api/"/>
229    <!-- Test classpath -->    <property name="java14.api.url"     value="${java14.docroot.url}/api/"/>
230    <path id="test.classpath">    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
231      <pathelement location="${build.testcases.dir}"/>  
232      <pathelement location="${junit.jar}"/>    <!-- Define the "jtreg" task -->
233    </path>    <!-- See the docs in "jtreg -onlineHelp" -->
234      <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
235               classpath="${lib.dir}/jtreg.jar" />
236    
237      <!-- Tck options; see JSR166TestCase.java
238       To profile a single tck test class:
239       ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
240       To stress test a single tck test class:
241       ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
242       To stress test a single tck test method:
243       ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
244      -->
245      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
246      <macrodef name="run-tck-tests">
247        <attribute name="tck.src.dir" default="${tck.src.dir}"/>
248        <attribute name="target"/>
249        <attribute name="compile-target" default="@{target}"/>
250        <attribute name="workdir"/>
251        <attribute name="classes"/>
252        <!--
253            <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/>
254        -->
255            <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
256        <element name="javac-elements" optional="true"/>
257    
258        <sequential>
259    
260        <local name="modules"/>
261        <condition property="modules">
262          <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
263        </condition>
264    
265        <local name="use-doclint"/>
266        <condition property="use-doclint">
267          <not> <equals arg1="@{target}" arg2="7"/> </not>
268        </condition>
269    
270        <mkdir dir="@{workdir}/tck-classes"/>
271    
272        <javac srcdir="@{tck.src.dir}"
273               destdir="@{workdir}/tck-classes"
274               debug="${build.debug}"
275               debuglevel="${build.debuglevel}"
276               deprecation="${build.deprecation}"
277               source="@{compile-target}"
278               target="@{compile-target}"
279               classpath="${junit.jar}"
280               includeAntRuntime="false"
281               includeJavaRuntime="false"
282               encoding="ASCII"
283               executable="${javac@{compile-target}}"
284               fork="true">
285    
286          <include name="*.java"/>
287          <compilerarg value="-XDignore.symbol.file=true"/>
288          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
289          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
290          <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
291          <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
292          <compilerarg line="${build.args}"/>
293          <javac-elements/>
294    
295        </javac>
296    
297        <java classname="${jsr166.tckTestClass}"
298              failonerror="true"
299              jvm="${java@{target}}"
300              fork="true">
301            <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
302            <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
303            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
304            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
305            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
306            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
307            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
308            <jvmarg line="@{jvmflags}"/>
309            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
310            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
311    
312            <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
313            <syspropertyset id="system-properties-used-by-tck">
314              <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
315              <propertyref prefix="jsr166."/>
316              <propertyref name="test.timeout.factor"/>
317            </syspropertyset>
318    
319            <classpath>
320              <pathelement location="${junit.jar}"/>
321              <pathelement location="@{workdir}/tck-classes"/>
322            </classpath>
323        </java>
324    
325        </sequential>
326      </macrodef>
327    
328      <!-- Define jtreg test sets for different jdk versions -->
329      <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
330      <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
331      <property name="jtreg.test.pattern" value="**/*.java"/>
332      <macrodef name="defjtregtests">
333        <attribute name="v"/>
334        <sequential>
335          <fileset dir="${jtreg@{v}.src.dir}">
336            <patternset id="jdk@{v}.jtreg.tests">
337              <include name="${jtreg.test.pattern}"/>
338            </patternset>
339          </fileset>
340        </sequential>
341      </macrodef>
342    
343      <defjtregtests v="14"/>
344      <defjtregtests v="13"/>
345      <defjtregtests v="12"/>
346      <defjtregtests v="11"/>
347      <defjtregtests v="10"/>
348      <defjtregtests v="9"/>
349      <defjtregtests v="8"/>
350      <defjtregtests v="7"/>
351    
352      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
353      <property name="jtreg.flags" value=""/>
354    
355      <macrodef name="run-jtreg-tests">
356        <!-- ant -Djtreg11.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
357        <attribute name="target"/>
358        <attribute name="workdir"/>
359        <attribute name="classes"/>
360        <attribute name="verbose" default="${jtreg.verbose}"/>
361        <attribute name="jtregflags" default=""/>
362        <element name="jtreg-elements" optional="true"/>
363    
364        <sequential>
365    
366        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
367        <property name="jtreg.verbose" value="nopass,fail,error"/>
368    
369        <local name="modules"/>
370        <condition property="modules">
371          <available file="${jdk@{target}.home}/lib/modules" type="file"/>
372        </condition>
373    
374        <delete dir="@{workdir}/JTwork"   quiet="true"/>
375        <jtreg dir="${jtreg@{target}.src.dir}"
376               jdk="${jdk@{target}.home}"
377               workDir="@{workdir}/JTwork">
378          <patternset refid="jdk@{target}.jtreg.tests"/>
379          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
380          <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
381          <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
382          <arg value="-agentvm"/>
383          <arg value="-noreport"/>
384          <arg value="-verbose:@{verbose}"/>
385          <arg value="-vmoptions:-esa -ea"/>
386          <arg value="-automatic"/>
387          <arg value="-k:!ignore"/>
388          <arg line="@{jtregflags}"/>
389          <arg line="${jtreg.flags}"/>
390          <jtreg-elements/>
391        </jtreg>
392        </sequential>
393      </macrodef>
394    
395    <!-- ALoops classpath -->    <!-- ALoops classpath -->
396    <path id="loops.classpath">    <path id="loops.classpath">
397      <pathelement location="${build.loops.dir}"/>      <pathelement location="${build.loops.dir}"/>
398    </path>    </path>
399    
400      <!-- Support @jls tag, used in jdk8+ javadoc -->
401      <!-- TODO: switch to @jls taglet, as supported by jdk14+ javadoc -->
402      <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
403      <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
404    
405    <!-- Main targets -->    <!-- Main targets -->
406    
407      <!-- Default values: may seem strange ... -->
408      <!-- At runtime, target latest LTS, i.e. jdk11 -->
409      <!-- But at build time, target jdk9, for maximal binary portability -->
410      <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
411        o override-methods=summary
412        o {@systemProperty ...}
413        o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
414        o 8202628: javadoc generates bad links in TestModules.java
415        -->
416      <property name="java.runtime.target" value="11"/>
417      <property name="build.main.java" value="${java11}"/>
418      <property name="build.main.javac" value="${javac9}"/>
419      <property name="build.main.javadoc" value="${javadoc12}"/>
420      <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
421    
422    <target name="dists"    <target name="dists"
423            depends="dist, jsr166xdist, jsr166ydist,jsr166edist,  extra166ydist"            depends="dist, 4jdk8dist"
424            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
425              <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
426    
427    <target name="compile"    <target name="compile"
428            depends="init, configure-compiler"            depends="configure-compiler"
429            description="Compiles main sources to build folder">            description="Compiles src/main sources to build dir">
430    
431        <local name="destdir"/>
432        <property name="destdir" value="${build.classes.dir}/java.base"/>
433    
434      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${destdir}"/>
435    
436      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
437            destdir="${build.classes.dir}"             destdir="${destdir}"
438              debug="${build.debug}"             debug="${build.debug}"
439         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
440        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
441             source="${build.sourcelevel}"             classpath=""
442               fork="true">             includeAntRuntime="false"
443               includeJavaRuntime="false"
444               encoding="ASCII"
445               executable="${build.main.javac}"
446               fork="true">
447    
448        <include name="**/*.java"/>        <include name="**/*.java"/>
449          <compilerarg value="--patch-module=java.base=${src.dir}"/>
450          <compilerarg value="-Xprefer:source"/>
451        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
452          <compilerarg value="-Xlint:all,-removal"/>
453  <!--        <compilerarg line="--doclint-format html5"/>
454        <exclude name="java/lang/**"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
455          <compilerarg value="-Xdoclint/package:java.util.*"/>
456          <compilerarg value="-Werror"/>
457          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
458        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <compilerarg line="-Xlint -Xmaxwarns 1000"/>  
 -->  
459    
460      </javac>      </javac>
   
461    </target>    </target>
462    
463    
   
464    <target name="jar"    <target name="jar"
465            depends="compile"            depends="compile"
466            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
467        <local name="subdir"/>
468      <mkdir dir="${build.lib.dir}"/>      <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
   
469      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
470        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
471          <manifest>
472            <attribute name="Built-By" value="${user.name}"/>
473            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
474          </manifest>
475      </jar>      </jar>
   
476    </target>    </target>
477    
478    
   
   <target name="test"  
           depends="init, configure-tests, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
   
   
   
479    <target name="docs"    <target name="docs"
480            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs for src/main to dist dir">
481    
482      <delete dir="${build.javadocs.dir}"/>      <delete dir="${docs.dir}"/>
483      <mkdir dir="${build.javadocs.dir}"/>      <mkdir dir="${docs.dir}"/>
484    
485      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
486      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
487    
488      <javadoc destdir="${build.javadocs.dir}"  <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
489    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
490    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
491    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
492    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
493        <javadoc destdir="${docs.dir}"
494               packagenames="none"               packagenames="none"
495               link="${jdkapidocs.url}"               link="${java.api.url}"
496               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
497               sourcepath="${src.dir}:${jdksrc.dir}"               access="${build.javadoc.access}"
498               additionalparam="-XDignore.symbol.file=true" >               sourcepath="${src.dir}"
499                 classpath=""
500                 source="${build.main.javadoc.source}"
501                 executable="${build.main.javadoc}">
502    <!-- TODO: JDK-8214571 failonerror = "true" -->
503        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
504          <include name="**/*.java"/>          <include name="**/*.java"/>
505        </fileset>        </fileset>
506          <arg line="-Xdocrootparent ${java.docroot.url}"/>
507          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
508          <arg value="-XDignore.symbol.file=true"/>
509          <arg value="-html5"/>
510          <arg value="--patch-module=java.base=${src.dir}"/>
511    <!-- old school frames via docs/index.html?overview-summary.html -->
512    <!-- TODO: - -frames no longer a supported option in jdk13+ -->
513          <arg value="--frames"/>
514          <arg value="--override-methods=summary"/>
515          <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
516          <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
517          <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
518          <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
519    <!-- tags added in jdk9: currently unused -->
520    <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
521    <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
522      </javadoc>      </javadoc>
   
523    </target>    </target>
524    
525    
   
526    <target name="dist"    <target name="dist"
527            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
528            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
529    
530    
   <target name="release"  
           depends="dist"  
           description="Puts entire CVS tree, plus distribution productions, in a jar">  
   
     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>  
   
     <jar basedir="${basedir}" destfile="${release.jar}">  
       <!-- <exclude name="build/**"/> -->  
       <exclude name="${release.jar}"/>  
       <exclude name="user.properties"/>  
       <exclude name="etc/notes/**"/>  
       <exclude name="src/emulation/**"/>  
       <exclude name="**/SyntaxTest.java"/>  
       <exclude name="**/SuperfluousAbstract.java"/>  
     </jar>  
   
   </target>  
   
   
   
531    <target name="clean"    <target name="clean"
532            description="Removes all build products">            description="Removes all build products">
   
533      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
   
534    </target>    </target>
535    
536    
   
537    <target name="dist-clean"    <target name="dist-clean"
538            description="Removes all build and distribution products">            description="Removes all build and distribution products">
539        <delete dir="${build.dir}"/>
540      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
   </target>  
   
   
   
   <target name="dist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
   
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
   
     <!-- the packagenames="none" hack below prevents scanning the -->  
     <!-- sourcepath for packages -->  
   
     <javadoc destdir="${dist.javadocs.dir}"  
              packagenames="none"  
              link="${jdkapidocs.url}"  
              overview="${src.dir}/intro.html"  
              sourcepath="${src.dir}:${jdksrc.dir}"  
              additionalparam="-XDignore.symbol.file=true" >  
       <fileset dir="${src.dir}" defaultexcludes="yes">  
         <include name="**/*.java"/>  
       </fileset>  
     </javadoc>  
   
   </target>  
   
   
   
   <!-- Internal targets -->  
   
   
   <target name="init">  
   
     <!-- Version is kept in a separate file -->  
     <loadfile property="version" srcFile="version.properties"/>  
     <echo>Building JSR-166 version ${version}</echo>  
     <echo>java.home is ${java.home}</echo>  
   
541    </target>    </target>
542    
543    
544    <target name="dist-jar"    <target name="dist-jar"
545            depends="clean, jar">            depends="clean, jar">
   
546      <copy file="${product.jar}" todir="${dist.dir}"/>      <copy file="${product.jar}" todir="${dist.dir}"/>
   
547    </target>    </target>
548    
549      <target name="dist-docs"
550    <target name="compile-tests"            depends="clean, docs">
551            depends="jar">      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
   
     <mkdir dir="${build.testcases.dir}"/>  
   
     <javac srcdir="${tck.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
   
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
   
       <classpath refid="test.classpath"/>  
   
     </javac>  
   
     <javac srcdir="${test.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
   
       <include name="jsr166/test/**"/>  
   
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
   
       <classpath refid="test.classpath"/>  
   
     </javac>  
   
 <!--  
     <javac srcdir="${jtreg.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
   
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
   
       <classpath refid="test.classpath"/>  
   
     </javac>  
 -->  
   
552    </target>    </target>
553    
554      <target name="tck"
555    <target name="run-tests"            depends="jar"
556            depends="compile-tests">            description="Runs tck tests for src/main directly">
557    
558      <!-- May be overridden by user.properties -->      <run-tck-tests
559      <property name="testcase" value="*"/>        target="${java.runtime.target}"
560          workdir="${build.dir}"
561      <mkdir dir="${build.reports.dir}"/>        classes="${product.jar}">
562          <javac-elements>
563      <junit printsummary="true"          <compilerarg value="-Werror"/>
564               showoutput="true"        </javac-elements>
565            errorProperty="junit.failed"      </run-tck-tests>
566          failureProperty="junit.failed"    </target>
567                      dir="${build.reports.dir}"  
568                     fork="true">    <target name="tck-parallelism-1"
569              description="Runs tck with common pool parallelism 1">
570        <jvmarg value="${bootclasspath.args}"/>      <antcall target="tck">
571        <jvmarg value="-server"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
572        <jvmarg value="-showversion"/>      </antcall>
573      </target>
574        <classpath refid="test.classpath"/>  
575      <target name="tck-parallelism-0"
576        <formatter type="xml"/>            description="Runs tck with common pool parallelism 0">
577        <antcall target="tck">
578        <batchtest todir="${build.reports.dir}" unless="no.test.tck">        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
579          <fileset dir="${tck.src.dir}">      </antcall>
580            <include name="**/${testcase}Test.java"/>    </target>
581          </fileset>  
582        </batchtest>    <target name="tck-security-manager"
583              description="Runs tck with a security manager">
584        <batchtest todir="${build.reports.dir}" if="do.test.old">      <antcall target="tck">
585          <fileset dir="${test.src.dir}">        <param name="jsr166.useSecurityManager" value="true"/>
586            <include name="jsr166/test/**/${testcase}Test.java"/>      </antcall>
587          </fileset>    </target>
588        </batchtest>  
589      <target name="jtreg"
590  <!--            depends="jar"
591        <batchtest todir="${build.reports.dir}" if="do.test.jtreg">            description="Runs jtreg tests for src/main using the jtreg ant task">
592          <fileset dir="${jtreg.src.dir}">      <run-jtreg-tests
593            <include name="**/${testcase}Test.java"/>         target="${java.runtime.target}"
594          </fileset>         workdir="${build.dir}"
595        </batchtest>         classes="${product.jar}"/>
 -->  
   
     </junit>  
   
596    </target>    </target>
597    
598      <target name="test"
599              depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
600              description="Runs tck and jtreg tests for src/main"/>
601    
602    <target name="report-tests"    <target name="test-version-permutations"
603            depends="run-tests">            depends="test9, test10, test11, test12, test13, test14, test9-11, test9-12, test9-13, test9-14, clean, test, docs">
604      </target>
     <!-- Sets junit.report.format to frames if redirection is present,  
          otherwise sets it to noframes. -->  
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"  
     />  
     <property name="junit.report.format" value="noframes"/>  
   
     <junitreport todir="${build.reports.dir}">  
       <fileset dir="${build.reports.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report format="${junit.report.format}" todir="${build.reports.dir}"  
       />  
     </junitreport>  
   
     <fail message="Test Cases Failed" if="junit.failed"/>  
605    
606      <target name="test9">
607        <antcall target="clean"/>
608        <antcall>
609          <param name="java.runtime.target" value="9"/>
610          <param name="build.main.javac" value="${javac9}"/>
611          <param name="build.main.javadoc" value="${javadoc12}"/>
612          <param name="build.main.javadoc.source" value="9"/>
613          <target name="test"/>
614          <target name="docs"/>
615        </antcall>
616      </target>
617    
618      <target name="test10">
619        <antcall target="clean"/>
620        <antcall>
621          <param name="java.runtime.target" value="10"/>
622          <param name="build.main.javac" value="${javac10}"/>
623          <param name="build.main.javadoc" value="${javadoc12}"/>
624          <param name="build.main.javadoc.source" value="10"/>
625          <target name="test"/>
626          <target name="docs"/>
627        </antcall>
628      </target>
629    
630      <target name="test11">
631        <antcall target="clean"/>
632        <antcall>
633          <param name="java.runtime.target" value="11"/>
634          <param name="build.main.javac" value="${javac11}"/>
635          <param name="build.main.javadoc" value="${javadoc12}"/>
636          <param name="build.main.javadoc.source" value="11"/>
637          <target name="test"/>
638          <target name="docs"/>
639        </antcall>
640      </target>
641    
642      <target name="test12">
643        <antcall target="clean"/>
644        <antcall>
645          <param name="java.runtime.target" value="12"/>
646          <param name="build.main.javac" value="${javac12}"/>
647          <param name="build.main.javadoc" value="${javadoc12}"/>
648          <param name="build.main.javadoc.source" value="12"/>
649          <target name="test"/>
650          <target name="docs"/>
651        </antcall>
652      </target>
653    
654      <target name="test13">
655        <antcall target="clean"/>
656        <antcall>
657          <param name="java.runtime.target" value="13"/>
658          <param name="build.main.javac" value="${javac13}"/>
659          <param name="build.main.javadoc" value="${javadoc13}"/>
660          <param name="build.main.javadoc.source" value="13"/>
661          <target name="test"/>
662          <target name="docs"/>
663        </antcall>
664      </target>
665    
666      <target name="test14">
667        <antcall target="clean"/>
668        <antcall>
669          <param name="java.runtime.target" value="14"/>
670          <param name="build.main.javac" value="${javac14}"/>
671          <param name="build.main.javadoc" value="${javadoc14}"/>
672          <param name="build.main.javadoc.source" value="14"/>
673          <target name="test"/>
674          <target name="docs"/>
675        </antcall>
676      </target>
677    
678      <target name="test9-11">
679        <antcall target="clean"/>
680        <antcall>
681          <param name="java.runtime.target" value="11"/>
682          <param name="build.main.javac" value="${javac9}"/>
683          <param name="build.main.javadoc" value="${javadoc12}"/>
684          <param name="build.main.javadoc.source" value="9"/>
685          <target name="test"/>
686          <target name="docs"/>
687        </antcall>
688      </target>
689    
690      <target name="test9-12">
691        <antcall target="clean"/>
692        <antcall>
693          <param name="java.runtime.target" value="12"/>
694          <param name="build.main.javac" value="${javac9}"/>
695          <param name="build.main.javadoc" value="${javadoc12}"/>
696          <param name="build.main.javadoc.source" value="9"/>
697          <target name="test"/>
698          <target name="docs"/>
699        </antcall>
700      </target>
701    
702      <target name="test9-13">
703        <antcall target="clean"/>
704        <antcall>
705          <param name="java.runtime.target" value="13"/>
706          <param name="build.main.javac" value="${javac9}"/>
707          <param name="build.main.javadoc" value="${javadoc13}"/>
708          <param name="build.main.javadoc.source" value="9"/>
709          <target name="test"/>
710          <target name="docs"/>
711        </antcall>
712      </target>
713    
714      <target name="test9-14">
715        <antcall target="clean"/>
716        <antcall>
717          <param name="java.runtime.target" value="14"/>
718          <param name="build.main.javac" value="${javac9}"/>
719          <param name="build.main.javadoc" value="${javadoc14}"/>
720          <param name="build.main.javadoc.source" value="9"/>
721          <target name="test"/>
722          <target name="docs"/>
723        </antcall>
724    </target>    </target>
725    
726    
727    <target name="configure-compiler">    <target name="configure-compiler">
728        <fail message="ant version too old">
729          <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
730        </fail>
731    
732      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
733    
# Line 451  Line 744 
744    </target>    </target>
745    
746    
747    <target name="configure-tests"    <target name="compile-test-loops" depends="jar"
748         depends="configure-compiler">            description="Compiles all the perf tests in src/test/loops">
   
     <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->  
     <available property="junit.available"  
                classname="junit.framework.Protectable"/>  
   
     <!-- Xalan -->  
     <available property="xalan.available"  
                classname="org.apache.xalan.Version"/>  
749    
750        <mkdir dir="${build.dir}/test/loops"/>
751    
752      <!-- Ant 1.6beta and later don't need or want this check -->      <javac srcdir="${basedir}/src/test/loops"
753      <!--             destdir="${build.dir}/test/loops"
754      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"             debug="${build.debug}"
755            unless="junit.available"/>             debuglevel="${build.debuglevel}"
756               deprecation="${build.deprecation}"
757      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"             includeAntRuntime="false"
758            unless="xalan.available"/>             includeJavaRuntime="false"
759      -->             encoding="ASCII"
760               executable="${build.main.javac}"
761               fork="true">
762    
763          <include name="*.java"/>
764          <compilerarg value="-XDignore.symbol.file=true"/>
765          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
766          <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
767          <compilerarg line="${build.args}"/>
768        </javac>
769    </target>    </target>
770    
771    
772    <!-- Various demos and test programs -->    <!-- jsr166 4jdk8 -->
   
   
   <target name="loops" depends="init, configure-compiler"  
           description="Benchmark from Doug Lea's AQS paper">  
773    
774      <mkdir dir="${build.loops.dir}"/>    <target name="4jdk8compile"
775              depends="configure-compiler"
776              description="Compiles src/jdk8 sources, targeting jdk8">
777    
778      <javac srcdir="${loops.src.dir}"      <mkdir dir="${build.4jdk8.classes.dir}"/>
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
779    
780        <compilerarg line="${build.args}"/>      <javac srcdir="${4jdk8src.dir}"
781        <classpath refid="loops.classpath"/>             destdir="${build.4jdk8.classes.dir}"
782               debug="${build.debug}"
783               debuglevel="${build.debuglevel}"
784               deprecation="${build.deprecation}"
785               source="8"
786               target="8"
787               classpath=""
788               bootclasspath="${bootclasspath8}"
789               includeAntRuntime="false"
790               includeJavaRuntime="false"
791               encoding="ASCII"
792               executable="${javac8}"
793               fork="true">
794          <include name="**/*.java"/>
795          <compilerarg value="-Xprefer:source"/>
796        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
797          <compilerarg value="-Xlint:all"/>
798          <compilerarg value="-Werror"/>
799          <compilerarg line="${build.args}"/>
800      </javac>      </javac>
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   
801    </target>    </target>
802    
803      <target name="4jdk8doclint"
   <!-- jdk7 -->  
   
   
   <target name="jdk7compile"  
804            depends="configure-compiler"            depends="configure-compiler"
805            description="Compiles src/jdk7 sources">            description="Finds doclint warnings">
806    
807      <mkdir dir="${build.jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk8.classes.dir}"/>
808    
809      <javac srcdir="${jdk7src.dir}"      <javac srcdir="${4jdk8src.dir}"
810             destdir="${build.jdk7.classes.dir}"             destdir="${build.4jdk8.classes.dir}"
811             debug="${build.debug}"             debug="${build.debug}"
812             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
813             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
814             source="1.6"             source="8"
815               target="8"
816             classpath=""             classpath=""
817             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath8}"
818             includeAntRuntime="false"             includeAntRuntime="false"
819             includeJavaRuntime="false"             includeJavaRuntime="false"
820             executable="${javac6}"             encoding="ASCII"
821               executable="${javac8}"
822             fork="true">             fork="true">
   
823        <include name="**/*.java"/>        <include name="**/*.java"/>
824        <compilerarg line="${build.args}"/>        <compilerarg value="-Xprefer:source"/>
825        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
826        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
827          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
828          <compilerarg line="${build.args}"/>
829      </javac>      </javac>
   
830    </target>    </target>
831    
832    
833      <target name="4jdk8jar"
834    <target name="jdk7jar"            depends="4jdk8compile"
           depends="jdk7compile"  
835            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
836    
837      <mkdir dir="${build.jdk7.lib.dir}"/>      <jar destfile="${4jdk8product.jar}">
838          <fileset dir="${build.4jdk8.classes.dir}"/>
839      <jar destfile="${jdk7product.jar}" index="true">        <manifest>
840        <fileset dir="${build.jdk7.classes.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
841            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
842          </manifest>
843      </jar>      </jar>
   
844    </target>    </target>
845    
846    
847      <target name="4jdk8-tck"
848              depends="4jdk8jar"
849              description="Runs tck tests for jsr166-4jdk8 directly">
850    
851    <target name="jdk7docs"      <run-tck-tests
852            description="Builds javadocs with custom tags to build folder">        target="8"
853          workdir="${build.4jdk8.dir}"
854      <delete dir="${build.jdk7.docs.dir}"/>        classes="${4jdk8product.jar}">
855      <mkdir dir="${build.jdk7.docs.dir}"/>        <javac-elements>
856            <!-- JDK9+ test classes -->
857      <javadoc destdir="${build.jdk7.docs.dir}"          <exclude name="*9Test.java"/>
858               packagenames="none"          <exclude name="*10Test.java"/>
859               link="${jdkapi7docs.url}"          <compilerarg value="-Werror"/>
860               overview="${jdk7src.dir}/intro.html"        </javac-elements>
861               sourcepath="${jdk7src.dir}"      </run-tck-tests>
              bootclasspath="${bootclasspath6}"  
              classpath=""  
              source="1.6"  
              executable="${javadoc7}"  
              additionalparam="-XDignore.symbol.file=true" >  
       <fileset dir="${jdk7src.dir}" defaultexcludes="yes">  
         <include name="**/*.java"/>  
       </fileset>  
     </javadoc>  
   
862    </target>    </target>
863    
864    
865    <target name="jdk7dist"    <target name="4jdk8-jtreg"
866            depends="jdk7dist-clean, jdk7dist-jar, jdk7dist-docs"            depends="4jdk8jar"
867            description="Puts all distributable products in single hierarchy"/>            description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
868        <run-jtreg-tests
869           target="8"
870           workdir="${build.4jdk8.dir}"
871    <target name="jdk7clean"         classes="${4jdk8product.jar}"/>
           description="Removes all build products">  
   
     <delete dir="${build.jdk7.dir}"/>  
   
872    </target>    </target>
873    
874    
875      <target name="4jdk8-test"
876              depends="4jdk8-tck, 4jdk8-jtreg"
877              description="Runs tck and jtreg tests for jsr166-4jdk8"/>
878    
   <target name="jdk7dist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
879    
880    <target name="jdk7dist-docs"    <target name="4jdk8docs"
881            description="Builds javadocs without custom tags to dist folder">            description="Builds javadocs for src/jdk8 to dist dir">
882    
883      <delete dir="${dist.jdk7.docs.dir}"/>      <delete dir="${4jdk8docs.dir}"/>
884      <mkdir dir="${dist.jdk7.docs.dir}"/>      <mkdir dir="${4jdk8docs.dir}"/>
885    
886      <javadoc destdir="${dist.jdk7.docs.dir}"      <javadoc destdir="${4jdk8docs.dir}"
887               packagenames="none"               packagenames="none"
888               link="${jdkapi7docs.url}"               link="${java8.api.url}"
889               overview="${jdk7src.dir}/intro.html"               overview="${4jdk8src.dir}/intro.html"
890               sourcepath="${jdk7src.dir}"               access="${build.javadoc.access}"
891                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
892               classpath=""               classpath=""
893               executable="${javadoc7}"               source="8"
894               bootclasspath="${bootclasspath6}"               executable="${javadoc8}"
895               source="1.6">               failonerror = "true">
896        <arg value="-XDignore.symbol.file=true"/>        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
       <fileset dir="${jdk7src.dir}" defaultexcludes="yes">  
897          <include name="**/*.java"/>          <include name="**/*.java"/>
898        </fileset>        </fileset>
899          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
900          <arg value="-XDignore.symbol.file=true"/>
901          <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
902          <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
903          <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
904    <!-- @apiNote tag currently unused -->
905    <!--  <arg value="-tag"/> <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
906      </javadoc>      </javadoc>
   
907    </target>    </target>
908    
   <target name="jdk7dist-jar"  
           depends="jdk7clean, jdk7jar">  
909    
910      <copy file="${jdk7product.jar}" todir="${dist.dir}"/>    <target name="4jdk8dist"
911              depends="4jdk8dist-jar, 4jdk8dist-docs"
912              description="Puts all distributable products in single hierarchy"/>
913    
914    
915      <target name="4jdk8clean"
916              description="Removes all 4jdk8 build products">
917        <delete dir="${build.4jdk8.dir}"/>
918      </target>
919    
920    
921      <target name="4jdk8dist-jar"
922              depends="4jdk8clean, 4jdk8jar">
923        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
924    </target>    </target>
925    
   <!-- jsr166x -->  
926    
927      <target name="4jdk8dist-docs"
928              depends="4jdk8clean, 4jdk8docs">
929        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
930      </target>
931    
   <target name="jsr166xcompile"  
           depends="init, configure-compiler"  
           description="Compiles jsr166x sources">  
932    
933      <mkdir dir="${build.jsr166x.dir}"/>    <!-- jsr166 4jdk7 (no longer maintained) -->
934    
935      <javac srcdir="${jsr166xsrc.dir}"    <target name="4jdk7compile" depends="configure-compiler">
936            destdir="${build.jsr166x.dir}"      <mkdir dir="${build.4jdk7.classes.dir}"/>
937              debug="${build.debug}"  
938         debuglevel="${build.debuglevel}"      <javac srcdir="${4jdk7src.dir}"
939        deprecation="${build.deprecation}"             destdir="${build.4jdk7.classes.dir}"
940             source="${build.sourcelevel}"             debug="${build.debug}"
941               fork="true">             debuglevel="${build.debuglevel}"
942               deprecation="${build.deprecation}"
943               source="6"
944               target="6"
945               classpath=""
946               bootclasspath="${bootclasspath6}"
947               includeAntRuntime="false"
948               includeJavaRuntime="false"
949               encoding="ASCII"
950               executable="${javac7}"
951               fork="true">
952    
953        <include name="**/*.java"/>        <include name="**/*.java"/>
954        <compilerarg line="${build.args}"/>        <compilerarg value="-Xprefer:source"/>
955        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
956          <compilerarg value="-Xlint:all"/>
957          <compilerarg value="-Werror"/>
958          <compilerarg line="${build.args}"/>
959      </javac>      </javac>
   
960    </target>    </target>
961    
962      <target name="4jdk7doclint" depends="configure-compiler">
963        <mkdir dir="${build.4jdk7.classes.dir}"/>
964    
965        <javac srcdir="${4jdk7src.dir}"
966               destdir="${build.4jdk7.classes.dir}"
967               debug="${build.debug}"
968               debuglevel="${build.debuglevel}"
969               deprecation="${build.deprecation}"
970               source="6"
971               target="6"
972               classpath=""
973               bootclasspath="${bootclasspath6}"
974               includeAntRuntime="false"
975               includeJavaRuntime="false"
976               encoding="ASCII"
977               executable="${javac8}"
978               fork="true">
979    
980    <target name="jsr166xjar"        <include name="**/*.java"/>
981            depends="jsr166xcompile"        <compilerarg value="-Xprefer:source"/>
982            description="Builds library jar from compiled sources">        <compilerarg value="-XDignore.symbol.file=true"/>
983          <compilerarg value="-Xlint:all"/>
984      <mkdir dir="${build.jsr166xlib.dir}"/>        <compilerarg value="-Xdoclint:all/protected"/>
985          <compilerarg line="${build.args}"/>
986        </javac>
987      </target>
988    
989      <jar destfile="${jsr166xproduct.jar}">    <target name="4jdk7jar" depends="4jdk7compile">
990        <fileset dir="${build.jsr166x.dir}"/>      <jar destfile="${4jdk7product.jar}">
991          <fileset dir="${build.4jdk7.classes.dir}"/>
992          <manifest>
993            <attribute name="Built-By" value="${user.name}"/>
994            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
995          </manifest>
996      </jar>      </jar>
   
997    </target>    </target>
998    
999      <target name="4jdk7-tck" depends="4jdk7jar">
1000        <run-tck-tests
1001    <target name="jsr166xdocs"        target="7"
1002            description="Builds javadocs with custom tags to build folder">        workdir="${build.4jdk7.dir}"
1003          classes="${4jdk7product.jar}">
1004      <delete dir="${build.jsr166xjavadocs.dir}"/>        <javac-elements>
1005      <mkdir dir="${build.jsr166xjavadocs.dir}"/>          <!-- JDK8+ test classes -->
1006            <exclude name="*8Test.java"/>
1007      <javadoc destdir="${build.jsr166xjavadocs.dir}"          <exclude name="*9Test.java"/>
1008               packagenames="jsr166x"          <exclude name="*10Test.java"/>
1009               link="${jdkapidocs.url}"          <exclude name="DoubleAccumulatorTest.java"/>
1010               source="${build.sourcelevel}"          <exclude name="DoubleAdderTest.java"/>
1011               sourcepath="${topsrc.dir}:${jdksrc.dir}"          <exclude name="LongAccumulatorTest.java"/>
1012               additionalparam="-XDignore.symbol.file=true" />          <exclude name="LongAdderTest.java"/>
1013            <exclude name="CompletableFutureTest.java"/>
1014            <exclude name="SplittableRandomTest.java"/>
1015            <exclude name="StampedLockTest.java"/>
1016            <exclude name="SubmissionPublisherTest.java"/>
1017            <compilerarg value="-Werror"/>
1018          </javac-elements>
1019        </run-tck-tests>
1020    </target>    </target>
1021    
1022      <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
1023      <target name="4jdk7-tck-junit" depends="4jdk7compile">
1024    
1025    <target name="jsr166xdist"      <junit printsummary="true"
1026            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"             showoutput="true"
1027            description="Puts all distributable products in single hierarchy"/>             errorProperty="junit.failed"
1028               failureProperty="junit.failed"
1029               includeantruntime="true"
1030               jvm="${java7}"
1031               fork="true">
1032    
1033          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
1034          <jvmarg value="-server"/>
1035    
1036    <target name="jsr166xclean"        <classpath>
1037            description="Removes all build products">          <pathelement location="${junit.jar}"/>
1038            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
1039          </classpath>
1040    
1041      <delete dir="${build.jsr166x.dir}"/>        <formatter type="brief"/>
     <delete dir="${build.jsr166xlib.dir}"/>  
1042    
1043          <test name="${jsr166.tckTestClass}" haltonfailure="no">
1044          </test>
1045        </junit>
1046    </target>    </target>
1047    
1048      <target name="4jdk7-jtreg" depends="4jdk7jar">
1049        <run-jtreg-tests
1050    <target name="jsr166xdist-clean"         target="7"
1051            description="Removes all build and distribution products">         workdir="${build.4jdk7.dir}"
1052           classes="${4jdk7product.jar}"/>
1053    </target>    </target>
1054    
1055      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1056    
1057      <target name="4jdk7docs">
1058        <delete dir="${4jdk7docs.dir}"/>
1059        <mkdir dir="${4jdk7docs.dir}"/>
1060    
1061    <target name="jsr166xdist-docs"      <javadoc destdir="${4jdk7docs.dir}"
1062            description="Builds javadocs without custom tags to dist folder">               packagenames="none"
1063                 link="${java7.api.url}"
1064      <delete dir="${dist.jsr166xjavadocs.dir}"/>               overview="${4jdk7src.dir}/intro.html"
1065      <mkdir dir="${dist.jsr166xjavadocs.dir}"/>               access="${build.javadoc.access}"
1066                 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1067      <javadoc destdir="${dist.jsr166xjavadocs.dir}"               classpath=""
1068               packagenames="jsr166x"               executable="${javadoc7}"
1069               link="${jdkapidocs.url}"               failonerror = "true">
1070               source="${build.sourcelevel}"        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1071               sourcepath="${topsrc.dir}:${jdksrc.dir}"          <include name="**/*.java"/>
1072               additionalparam="-XDignore.symbol.file=true" />        </fileset>
1073          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
1074          <arg value="-XDignore.symbol.file=true"/>
1075        </javadoc>
1076    </target>    </target>
1077    
1078    <target name="jsr166xdist-jar"    <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
           depends="jsr166xclean, jsr166xjar">  
   
     <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>  
1079    
1080      <target name="4jdk7clean">
1081        <delete dir="${build.4jdk7.dir}"/>
1082    </target>    </target>
1083    
1084    <!-- jsr166y -->    <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
1085        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1086      </target>
1087    
1088      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
1089        <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1090      </target>
1091    
   <target name="jsr166ycompile"  
           depends="init, configure-compiler"  
           description="Compiles jsr166y sources">  
1092    
1093      <mkdir dir="${build.jsr166y.dir}"/>    <!-- jsr166x (no longer maintained) -->
1094    
1095      <javac srcdir="${jsr166ysrc.dir}"    <target name="jsr166xcompile" depends="configure-compiler">
1096            destdir="${build.jsr166y.dir}"      <mkdir dir="${build.jsr166x.classes.dir}"/>
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
1097    
1098        <include name="**/*.java"/>      <javac srcdir="${topsrc.dir}"
1099        <compilerarg line="${build.args}"/>             destdir="${build.jsr166x.classes.dir}"
1100               debug="${build.debug}"
1101               debuglevel="${build.debuglevel}"
1102               deprecation="${build.deprecation}"
1103               classpath=""
1104               bootclasspath="${bootclasspath6}"
1105               source="5"
1106               target="5"
1107               includeAntRuntime="false"
1108               includeJavaRuntime="false"
1109               encoding="ASCII"
1110               executable="${javac7}"
1111               fork="true">
1112          <include name="jsr166x/**/*.java"/>
1113        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1114        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1115          <compilerarg value="-Werror"/>
1116  <!--       <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->        <compilerarg line="${build.args}"/>
   
1117      </javac>      </javac>
   
1118    </target>    </target>
1119    
1120      <target name="jsr166xjar" depends="jsr166xcompile">
1121        <jar destfile="${jsr166x.jar}">
1122    <target name="jsr166yjar"        <fileset dir="${build.jsr166x.classes.dir}"/>
1123            depends="jsr166ycompile"        <manifest>
1124            description="Builds library jar from compiled sources">          <attribute name="Built-By" value="${user.name}"/>
1125            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1126      <mkdir dir="${build.jsr166ylib.dir}"/>        </manifest>
   
     <jar destfile="${jsr166yproduct.jar}" index="true">  
       <fileset dir="${build.jsr166y.dir}"/>  
1127      </jar>      </jar>
   
1128    </target>    </target>
1129    
1130      <target name="jsr166xdocs">
1131        <delete dir="${jsr166xdocs.dir}"/>
1132        <mkdir dir="${jsr166xdocs.dir}"/>
1133    
1134        <javadoc destdir="${jsr166xdocs.dir}"
1135                 packagenames="jsr166x.*"
1136                 link="${java.api.url}"
1137                 access="${build.javadoc.access}"
1138                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1139                 bootclasspath="${bootclasspath6}"
1140                 source="5"
1141                 executable="${javadoc7}"
1142                 failonerror = "true">
1143          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1144          <arg value="-XDignore.symbol.file=true"/>
1145        </javadoc>
1146      </target>
1147    
1148      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1149    
1150    <target name="jsr166ydocs"    <target name="jsr166xclean">
1151            description="Builds javadocs with custom tags to build folder">      <delete dir="${build.jsr166x.dir}"/>
   
     <delete dir="${build.jsr166yjavadocs.dir}"/>  
     <mkdir dir="${build.jsr166yjavadocs.dir}"/>  
   
     <javadoc destdir="${build.jsr166yjavadocs.dir}"  
              packagenames="jsr166y"  
              link="${jdkapidocs.url}"  
              source="${build.sourcelevel}"  
              sourcepath="${topsrc.dir}:${jdksrc.dir}"  
              additionalparam="-XDignore.symbol.file=true" />  
   
1152    </target>    </target>
1153    
1154      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
1155        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1156      </target>
1157    
1158    <target name="jsr166ydist"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
1159            depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydist-docs"      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1160            description="Puts all distributable products in single hierarchy"/>    </target>
1161    
1162    
1163      <!-- jsr166y (no longer maintained) -->
1164    
1165    <target name="jsr166yclean"    <target name="jsr166ycompile" depends="configure-compiler">
1166            description="Removes all build products">      <mkdir dir="${build.jsr166y.classes.dir}"/>
1167    
1168      <delete dir="${build.jsr166y.dir}"/>      <javac srcdir="${topsrc.dir}"
1169      <delete dir="${build.jsr166ylib.dir}"/>             destdir="${build.jsr166y.classes.dir}"
1170               debug="${build.debug}"
1171               debuglevel="${build.debuglevel}"
1172               deprecation="${build.deprecation}"
1173               source="6"
1174               target="6"
1175               classpath=""
1176               bootclasspath="${bootclasspath6}"
1177               includeAntRuntime="false"
1178               includeJavaRuntime="false"
1179               encoding="ASCII"
1180               executable="${javac7}"
1181               fork="true">
1182    
1183          <include name="jsr166y/**/*.java"/>
1184          <compilerarg value="-XDignore.symbol.file=true"/>
1185          <compilerarg value="-Xlint:all"/>
1186          <compilerarg value="-Werror"/>
1187          <compilerarg line="${build.args}"/>
1188        </javac>
1189    </target>    </target>
1190    
1191      <target name="jsr166yjar" depends="jsr166ycompile">
1192        <jar destfile="${jsr166y.jar}" index="true">
1193    <target name="jsr166ydist-clean"        <fileset dir="${build.jsr166y.classes.dir}"/>
1194            description="Removes all build and distribution products">        <manifest>
1195            <attribute name="Built-By" value="${user.name}"/>
1196            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1197          </manifest>
1198        </jar>
1199    </target>    </target>
1200    
1201    <target name="jsr166ydist-docs"    <target name="jsr166ydocs">
1202            description="Builds javadocs without custom tags to dist folder">      <delete dir="${jsr166ydocs.dir}"/>
1203        <mkdir dir="${jsr166ydocs.dir}"/>
1204      <delete dir="${dist.jsr166yjavadocs.dir}"/>  
1205      <mkdir dir="${dist.jsr166yjavadocs.dir}"/>      <javadoc destdir="${jsr166ydocs.dir}"
1206                 packagenames="jsr166y.*"
1207      <javadoc destdir="${dist.jsr166yjavadocs.dir}"               link="${java.api.url}"
1208               packagenames="jsr166y"               access="${build.javadoc.access}"
1209               link="${jdkapidocs.url}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1210               source="${build.sourcelevel}"               bootclasspath="${bootclasspath6}"
1211               sourcepath="${topsrc.dir}:${jdksrc.dir}"               source="6"
1212               additionalparam="-XDignore.symbol.file=true" />               executable="${javadoc7}"
1213                 failonerror = "true">
1214          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1215          <arg value="-XDignore.symbol.file=true"/>
1216        </javadoc>
1217    </target>    </target>
1218    
1219    <target name="jsr166ydist-jar"    <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
           depends="jsr166yclean, jsr166yjar">  
   
     <copy file="${jsr166yproduct.jar}" todir="${dist.dir}"/>  
1220    
1221      <target name="jsr166yclean">
1222        <delete dir="${build.jsr166y.dir}"/>
1223    </target>    </target>
1224    
1225      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
1226        <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1227      </target>
1228    
1229    <!-- extra166y -->    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
1230        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1231      </target>
1232    
1233    
1234    <target name="extra166ycompile"    <!-- extra166y (no longer maintained) -->
           depends="init, configure-compiler, jsr166ycompile"  
           description="Compiles extra166y sources">  
1235    
1236      <mkdir dir="${build.extra166y.dir}"/>    <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1237        <mkdir dir="${build.extra166y.classes.dir}"/>
1238    
1239      <javac srcdir="${extra166ysrc.dir}"      <javac srcdir="${topsrc.dir}"
1240            destdir="${build.extra166y.dir}"             destdir="${build.extra166y.classes.dir}"
1241              debug="${build.debug}"             debug="${build.debug}"
1242              classpath="${jsr166yproduct.jar}"             debuglevel="${build.debuglevel}"
1243         debuglevel="${build.debuglevel}"             deprecation="${build.deprecation}"
1244        deprecation="${build.deprecation}"             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1245             source="${build.sourcelevel}"             classpath=""
1246               fork="true">             source="6"
1247               target="6"
1248               includeAntRuntime="false"
1249               includeJavaRuntime="false"
1250               encoding="ASCII"
1251               executable="${javac7}"
1252               fork="true">
1253    
1254        <include name="**/*.java"/>        <include name="extra166y/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1255        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1256        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1257          <compilerarg value="-Werror"/>
1258  <!--       <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->        <compilerarg line="${build.args}"/>
   
1259      </javac>      </javac>
   
1260    </target>    </target>
1261    
1262      <target name="extra166yjar" depends="extra166ycompile">
1263        <jar destfile="${extra166y.jar}" index="true">
1264    <target name="extra166yjar"        <fileset dir="${build.extra166y.classes.dir}"/>
1265            depends="extra166ycompile"        <manifest>
1266            description="Builds library jar from compiled sources">          <attribute name="Built-By" value="${user.name}"/>
1267            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1268      <mkdir dir="${build.extra166ylib.dir}"/>        </manifest>
   
     <jar destfile="${extra166yproduct.jar}" index="true">  
       <fileset dir="${build.extra166y.dir}"/>  
1269      </jar>      </jar>
   
1270    </target>    </target>
1271    
1272      <target name="extra166ydocs">
1273        <delete dir="${extra166ydocs.dir}"/>
1274    <target name="extra166ydocs"      <mkdir dir="${extra166ydocs.dir}"/>
1275            description="Builds javadocs with custom tags to build folder">  
1276        <javadoc destdir="${extra166ydocs.dir}"
1277      <delete dir="${build.extra166yjavadocs.dir}"/>               packagenames="extra166y.*"
1278      <mkdir dir="${build.extra166yjavadocs.dir}"/>               link="${java.api.url}"
1279                 access="${build.javadoc.access}"
1280      <javadoc destdir="${build.extra166yjavadocs.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1281               packagenames="extra166y"               bootclasspath="${bootclasspath6}"
1282               link="${jdkapidocs.url}"               source="6"
1283               source="${build.sourcelevel}"               executable="${javadoc7}">
1284               sourcepath="${topsrc.dir}:${jdksrc.dir}"        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1285               additionalparam="-XDignore.symbol.file=true" />        <arg value="-XDignore.symbol.file=true"/>
1286        </javadoc>
1287    </target>    </target>
1288    
1289      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1290    
1291    <target name="extra166ydist"    <target name="extra166yclean">
           depends="extra166ydist-clean, extra166ydist-jar, extra166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   
   <target name="extra166yclean"  
           description="Removes all build products">  
   
1292      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
     <delete dir="${build.extra166ylib.dir}"/>  
   
1293    </target>    </target>
1294    
1295      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
1296        <copy file="${extra166y.jar}" todir="${dist.dir}"/>
   <target name="extra166ydist-clean"  
           description="Removes all build and distribution products">  
   
1297    </target>    </target>
1298    
1299    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
1300            description="Builds javadocs without custom tags to dist folder">      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
   
     <delete dir="${dist.extra166yjavadocs.dir}"/>  
     <mkdir dir="${dist.extra166yjavadocs.dir}"/>  
   
     <javadoc destdir="${dist.extra166yjavadocs.dir}"  
              packagenames="extra166y"  
              link="${jdkapidocs.url}"  
              source="${build.sourcelevel}"  
              sourcepath="${topsrc.dir}:${jdksrc.dir}"  
              additionalparam="-XDignore.symbol.file=true" />  
   
1301    </target>    </target>
1302    
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
   
     <copy file="${extra166yproduct.jar}" todir="${dist.dir}"/>  
   
   </target>  
1303    
1304    <!-- jsr166e -->    <!-- jsr166e (no longer maintained) -->
1305    
1306    <target name="jsr166ecompile"    <property name="build.jsr166e.java.version" value="6"/>
1307            depends="configure-compiler"    <property name="build.jsr166e.javac" value="${javac6}"/>
           description="Compiles jsr166e sources">  
1308    
1309      <mkdir dir="${build.jsr166e.dir}"/>    <target name="jsr166ecompile" depends="configure-compiler">
1310        <mkdir dir="${build.jsr166e.classes.dir}"/>
1311    
1312      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
1313             destdir="${build.jsr166e.dir}"             destdir="${build.jsr166e.classes.dir}"
1314             debug="${build.debug}"             debug="${build.debug}"
1315             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1316             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1317             source="1.7"             source="${build.jsr166e.java.version}"
1318               target="${build.jsr166e.java.version}"
1319             classpath=""             classpath=""
1320             includeAntRuntime="false"             includeAntRuntime="false"
1321             includeJavaRuntime="false"             includeJavaRuntime="false"
1322             executable="${javac7}"             executable="${build.jsr166e.javac}"
1323             fork="true">             fork="true">
1324    
1325        <include name="jsr166e/**/*.java"/>        <include name="jsr166e/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1326        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1327        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1328          <compilerarg value="-Werror"/>
1329          <compilerarg line="${build.args}"/>
1330      </javac>      </javac>
   
1331    </target>    </target>
1332    
1333      <target name="jsr166edoclint">
1334        <mkdir dir="${build.jsr166e.classes.dir}"/>
1335    
1336        <javac srcdir="${topsrc.dir}"
1337               destdir="${build.jsr166e.classes.dir}"
1338               debug="${build.debug}"
1339               debuglevel="${build.debuglevel}"
1340               deprecation="${build.deprecation}"
1341               source="${build.jsr166e.java.version}"
1342               target="${build.jsr166e.java.version}"
1343               classpath=""
1344               bootclasspath="${bootclasspath6}"
1345               includeAntRuntime="false"
1346               includeJavaRuntime="false"
1347               executable="${javac8}"
1348               fork="true">
1349    
1350    <target name="jsr166ejar"        <include name="jsr166e/**/*.java"/>
1351            depends="jsr166ecompile"        <compilerarg value="-XDignore.symbol.file=true"/>
1352            description="Builds library jar from compiled sources">        <compilerarg value="-Xlint:all"/>
1353          <compilerarg value="-Werror"/>
1354      <mkdir dir="${build.jsr166elib.dir}"/>        <compilerarg value="-Xdoclint:all/protected"/>
1355        </javac>
1356      </target>
1357    
1358      <jar destfile="${jsr166eproduct.jar}" index="true">    <target name="jsr166ejar" depends="jsr166ecompile">
1359        <fileset dir="${build.jsr166e.dir}"/>      <jar destfile="${jsr166e.jar}" index="true">
1360          <fileset dir="${build.jsr166e.classes.dir}"/>
1361          <manifest>
1362            <attribute name="Built-By" value="${user.name}"/>
1363            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1364          </manifest>
1365      </jar>      </jar>
   
1366    </target>    </target>
1367    
1368      <target name="jsr166edocs">
1369        <delete dir="${jsr166edocs.dir}"/>
1370        <mkdir dir="${jsr166edocs.dir}"/>
1371    
1372        <javadoc destdir="${jsr166edocs.dir}"
1373                 packagenames="jsr166e.*"
1374                 link="${java.api.url}"
1375                 access="${build.javadoc.access}"
1376                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1377                 source="${build.jsr166e.java.version}"
1378                 executable="${javadoc7}"
1379                 failonerror = "true">
1380          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1381          <arg value="-XDignore.symbol.file=true"/>
1382        </javadoc>
1383      </target>
1384    
1385      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
1386        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1387        <run-tck-tests
1388          tck.src.dir="${test.src.dir}/tck-jsr166e"
1389          target="${build.jsr166e.java.version}"
1390          workdir="${build.jsr166e.dir}"
1391          classes="${jsr166e.jar}"/>
1392      </target>
1393    
1394    <target name="jsr166edocs"    <target name="jsr166e-tck">
           description="Builds javadocs with custom tags to build folder">  
1395    
1396      <delete dir="${build.jsr166ejavadocs.dir}"/>  <!--     <antcall target="clean"/> -->
1397      <mkdir dir="${build.jsr166ejavadocs.dir}"/>  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1398    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1399    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1400    <!--     </antcall> -->
1401    
1402      <javadoc destdir="${build.jsr166ejavadocs.dir}"      <antcall target="clean"/>
1403               packagenames="jsr166e,jsr166e.extra"      <antcall target="jsr166e-tck-one-java-version">
1404               link="${jdkapidocs.url}"        <param name="build.jsr166e.java.version" value="7"/>
1405               source="1.7"        <param name="build.jsr166e.javac" value="${javac7}"/>
1406               sourcepath="${topsrc.dir}:${jdksrc.dir}"      </antcall>
              additionalparam="-XDignore.symbol.file=true" />  
1407    
1408        <antcall target="clean"/>
1409        <antcall target="jsr166e-tck-one-java-version">
1410          <param name="build.jsr166e.java.version" value="6"/>
1411          <param name="build.jsr166e.javac" value="${javac6}"/>
1412        </antcall>
1413    </target>    </target>
1414    
1415      <target name="jsr166e-test" depends="jsr166e-tck"/>
1416    
1417    <target name="jsr166edist"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166edist-clean, jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   
   <target name="jsr166eclean"  
           description="Removes all build products">  
1418    
1419      <target name="jsr166eclean">
1420      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1421      <delete dir="${build.jsr166elib.dir}"/>    </target>
1422    
1423      <target name="jsr166edist-jar"
1424              depends="jsr166eclean, jsr166ejar">
1425        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1426    </target>    </target>
1427    
1428      <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
1429        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1430      </target>
1431    
1432    
1433    <target name="jsr166edist-clean"  <!-- Find buglets that can be detected by static build tools -->
           description="Removes all build and distribution products">  
1434    
1435    <!--   <target name="lint"> -->
1436    <!--     <antcall target="dists"> -->
1437    <!--       <param name="build.javadoc.access" value="protected"/> -->
1438    <!--     </antcall> -->
1439    <!--   </target> -->
1440    
1441    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1442      <target name="doclint-private">
1443        <antcall target="dist">
1444          <param name="build.javadoc.access" value="private"/>
1445        </antcall>
1446    </target>    </target>
1447    
   <target name="jsr166edist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
1448    
1449      <delete dir="${dist.jsr166ejavadocs.dir}"/>  <!-- ==============================================================
1450      <mkdir dir="${dist.jsr166ejavadocs.dir}"/>    Experimental errorprone support
1451      https://errorprone.info
1452      https://errorprone.info/docs/installation
1453      https://github.com/google/error-prone/issues/1143
1454    =================================================================== -->
1455      <path id="errorprone.processorpath.path">
1456        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1457        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1458        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1459        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1460      </path>
1461      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1462      <property name="errorprone.jsr166.user.flags" value=""/>
1463      <property name="errorprone.jsr166.flags"
1464                value="-Xep:HashtableContains:OFF
1465                       -Xep:JdkObsolete:OFF
1466                       -Xep:MissingOverride:OFF
1467                       -Xep:MissingFail:OFF
1468                       -Xep:ThreadPriorityCheck:OFF
1469                       -Xep:MixedArrayDimensions:ERROR
1470                       -Xep:RemoveUnusedImports:ERROR
1471                       -Xep:EmptyIf:ERROR
1472                       -Xep:MultipleTopLevelClasses:ERROR
1473                       -Xep:ClassName:ERROR
1474                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1475                       -Xep:RedundantThrows:ERROR
1476                       -Xep:IdentityBinaryExpression:WARN
1477                       -Xep:ConstructorInvokesOverridable:WARN
1478                       -Xep:MethodCanBeStatic:WARN
1479                       ${errorprone.jsr166.user.flags}"/>
1480      <!-- -Xep:WildcardImport:ERROR -->
1481      <property name="errorprone.jsr166.test.flags"
1482                value="-Xep:StringSplitter:OFF
1483                       -Xep:BoxedPrimitiveConstructor:OFF
1484                       -Xep:ModifyingCollectionWithItself:OFF"/>
1485      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1486      <target name="errorprone"
1487              depends="clean, configure-compiler"
1488              description="Run errorprone over jsr166 source code (experimental)">
1489    
1490        <local name="destdir"/>
1491        <property name="destdir" value="${build.classes.dir}/java.base"/>
1492        <mkdir dir="${destdir}"/>
1493    
1494      <javadoc destdir="${dist.jsr166ejavadocs.dir}"      <javac srcdir="${src.dir}"
1495               packagenames="jsr166e,jsr166e.extra"             destdir="${destdir}"
1496               link="${jdkapidocs.url}"             debug="${build.debug}"
1497               source="1.7"             debuglevel="${build.debuglevel}"
1498               sourcepath="${topsrc.dir}:${jdksrc.dir}"             deprecation="${build.deprecation}"
1499               additionalparam="-XDignore.symbol.file=true" />             classpath=""
1500               includeAntRuntime="false"
1501               includeJavaRuntime="false"
1502               encoding="ASCII"
1503               executable="${build.main.javac}"
1504               fork="true">
1505    
1506    </target>        <include name="**/*.java"/>
1507          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1508          <compilerarg value="-J--illegal-access=permit"/>
1509          <compilerarg value="-XDcompilePolicy=simple"/>
1510          <compilerarg value="-processorpath"/>
1511          <compilerarg pathref="errorprone.processorpath.path"/>
1512          <compilerarg value="-Xplugin:ErrorProne
1513                              ${errorprone.jsr166.flags}"/>
1514          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1515          <compilerarg value="-Xprefer:source"/>
1516          <compilerarg value="-XDignore.symbol.file=true"/>
1517          <compilerarg value="-Xlint:all"/>
1518          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1519          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1520          <compilerarg line="${build.args}"/>
1521        </javac>
1522    
1523    <target name="jsr166edist-jar"      <jar destfile="${product.jar}">
1524            depends="jsr166eclean, jsr166ejar">        <fileset dir="${destdir}"/>
1525        </jar>
1526    
1527      <copy file="${jsr166eproduct.jar}" todir="${dist.dir}"/>      <run-tck-tests
1528          target="${java.runtime.target}"
1529          workdir="${build.dir}"
1530          classes="${product.jar}">
1531          <javac-elements>
1532            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1533            <compilerarg value="-J--illegal-access=permit"/>
1534            <compilerarg value="-XDcompilePolicy=simple"/>
1535            <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1536            <compilerarg value="-Xplugin:ErrorProne
1537                                ${errorprone.jsr166.flags}
1538                                ${errorprone.jsr166.test.flags}"/>
1539            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1540          </javac-elements>
1541        </run-tck-tests>
1542      </target>
1543    
1544      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1545      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1546      <target name="errorprone-jtreg"
1547              depends="jar"
1548              description="Run errorprone over jtreg tests (experimental)">
1549    
1550        <run-jtreg-tests
1551           target="${java.runtime.target}"
1552           workdir="${build.dir}"
1553           classes="${product.jar}"
1554           verbose="all">
1555          <jtreg-elements>
1556            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1557            <arg value="-javacoption:-processorpath"/>
1558            <arg value="-javacoption:${errorprone.processorpath}"/>
1559            <arg value="-javacoption:-Xplugin:ErrorProne
1560                                ${errorprone.jsr166.flags}
1561                                ${errorprone.jsr166.test.flags}
1562                                -Xep:MultipleTopLevelClasses:WARN
1563                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1564          </jtreg-elements>
1565        </run-jtreg-tests>
1566      </target>
1567    
1568    
1569    <!-- ==============================================================
1570      Running guava tests against jsr166 code
1571    =================================================================== -->
1572    
1573    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1574    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1575    <!-- <property name="guava.version" value="21.0"/> -->
1576    
1577    <!-- HOWTO debug print a path id -->
1578    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1579    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1580    
1581    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1582    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1583    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1584    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1585    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1586    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1587    
1588    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1589    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1590    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1591    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1592    
1593    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1594    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1595    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1596    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1597    
1598    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1599    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1600    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1601    
1602      <target name="init-ivy">
1603        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1604             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1605        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1606                 classpath="${build.dir}/ivy.jar"/>
1607      </target>
1608    
1609      <target name="guava-tests" depends="jar, init-ivy"
1610              description="Guava tests run against jsr166 collections">
1611        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1612        <mkdir dir="${guava.dir}"/>
1613        <ivy:retrieve pathid="guava.testlib.classpath"
1614          type="jar,bundle" inline="true" conf="default,master"
1615          pattern="${guava.dir}/[artifact].[ext]"
1616          organisation="com.google.guava" module="guava-testlib"/>
1617        <property name="guava.version" value="21.0"/>
1618        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1619             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1620        <junit printsummary="true" showoutput="true" haltonfailure="true"
1621               jvm="${build.main.java}" fork="true">
1622          <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1623          <formatter type="brief"/>
1624          <classpath>
1625            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1626            <path refid="guava.testlib.classpath"/>
1627          </classpath>
1628    
1629          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1630          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1631        </junit>
1632    </target>    </target>
1633    
1634  </project>  </project>

Legend:
Removed from v.1.95  
changed lines
  Added in v.1.300

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