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

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

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