ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.316
Committed: Fri Jun 19 17:40:45 2020 UTC (3 years, 10 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.315: +35 -2 lines
Log Message:
add support for jdk16

File Contents

# User Rev Content
1 jsr166 1.177 <project name="jsr166" default="usage"
2 jsr166 1.285 xmlns:if="ant:if"
3 jsr166 1.266 xmlns:unless="ant:unless"
4 jsr166 1.229 xmlns:ivy="antlib:org.apache.ivy.ant">
5 tim 1.1
6     <description>
7 tim 1.29 ------------------------------------------------------------------------------
8     Build file for JSR-166
9 tim 1.18
10 tim 1.29 Usage: ant [target]
11    
12 jsr166 1.202 See http://gee.cs.oswego.edu/dl/concurrency-interest/index.html for
13     more details.
14    
15 tim 1.29 User-specific settings are read from user.properties.
16 tim 1.32 See user.properties.sample for an explanation of some useful settings.
17 jsr166 1.98
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 jsr166 1.260 $HOME/jdk/jdk11
23 jsr166 1.275 $HOME/jdk/jdk12
24 jsr166 1.293 $HOME/jdk/jdk13
25 jsr166 1.299 $HOME/jdk/jdk14
26 jsr166 1.310 $HOME/jdk/jdk15
27 jsr166 1.316 $HOME/jdk/jdk16
28 jsr166 1.99 where each of the above is a JDK or a symlink to same, and
29 jsr166 1.260 $HOME/jdk/src/jdk11
30 jsr166 1.275 $HOME/jdk/src/jdk12
31 jsr166 1.293 $HOME/jdk/src/jdk13
32 jsr166 1.299 $HOME/jdk/src/jdk14
33 jsr166 1.310 $HOME/jdk/src/jdk15
34 jsr166 1.316 $HOME/jdk/src/jdk16
35 jsr166 1.304 where each of the above is a JDK source tree or a symlink to same.
36 jsr166 1.159
37     Alternatively, define ant variables thus:
38 jsr166 1.199 ant -Djdk$N.home=... -Djdk$N.src.home=...
39 jsr166 1.316 for $N in 11 .. 16 ...
40 jsr166 1.182
41 jsr166 1.232 As of 2016-03, the sources in src/main are for jdk9+ only.
42 jsr166 1.301 As of 2019-08, the sources in src/main are for jdk11+ only.
43 jsr166 1.304 As of 2019-10, compatibility support for jdk8 is dropped entirely.
44 tim 1.29 ------------------------------------------------------------------------------
45 tim 1.18 </description>
46 tim 1.11
47 jsr166 1.210 <!-- Run 'ant -projecthelp' (default target) -->
48 jsr166 1.148 <target name="usage">
49 jsr166 1.129 <java classname="org.apache.tools.ant.Main">
50     <arg value="-projecthelp" />
51     </java>
52 tim 1.29 </target>
53 tim 1.3
54 jsr166 1.177 <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
55 tim 1.11
56 tim 1.27 <!-- User-specific settings -->
57 tim 1.23 <property file="user.properties"/>
58 tim 1.27
59 tim 1.1
60     <!-- Compilation options -->
61     <property name="build.debug" value="true"/>
62     <property name="build.debuglevel" value="source,lines,vars"/>
63 tim 1.13 <property name="build.deprecation" value="false"/>
64 jsr166 1.130 <property name="build.javadoc.access" value="protected"/>
65 tim 1.1
66     <!-- Build locations -->
67 jsr166 1.79 <property name="build.dir" location="build"/>
68     <property name="build.classes.dir" location="${build.dir}/classes"/>
69     <property name="build.testcases.dir" location="${build.dir}/testcases"/>
70     <property name="build.loops.dir" location="${build.dir}/loops"/>
71 jsr166 1.92
72 jsr166 1.118 <!-- JDK locations -->
73 jsr166 1.92 <property name="jdks.home" location="${user.home}/jdk"/>
74 jsr166 1.93
75     <macrodef name="defjdklocations">
76     <attribute name="v"/>
77     <sequential>
78 jsr166 1.199 <property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/>
79     <property name="java@{v}" location="${jdk@{v}.home}/bin/java"/>
80     <property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/>
81     <property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/>
82     <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
83 jsr166 1.304 <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"/>
84 jsr166 1.93 </sequential>
85     </macrodef>
86    
87 jsr166 1.125 <macrodef name="mirror-dir">
88     <attribute name="src"/>
89     <attribute name="dst"/>
90     <sequential>
91     <delete dir="@{dst}"/>
92     <mkdir dir="@{dst}"/>
93     <copy todir="@{dst}" preservelastmodified="true">
94     <fileset dir="@{src}"/>
95     </copy>
96     </sequential>
97     </macrodef>
98    
99 jsr166 1.260 <defjdklocations v="11"/>
100 jsr166 1.275 <defjdklocations v="12"/>
101 jsr166 1.294 <defjdklocations v="13"/>
102 jsr166 1.299 <defjdklocations v="14"/>
103 jsr166 1.310 <defjdklocations v="15"/>
104 jsr166 1.316 <defjdklocations v="16"/>
105 jsr166 1.92
106 tim 1.1 <!-- Source locations -->
107 tim 1.22 <property name="src.dir" location="${basedir}/src/main"/>
108     <property name="test.src.dir" location="${basedir}/src/test"/>
109 jsr166 1.65 <property name="loops.src.dir" location="${basedir}/src/loops"/>
110 tim 1.60 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
111 jsr166 1.260 <property name="jtreg11.src.dir" location="${test.src.dir}/jtreg"/>
112 jsr166 1.275 <property name="jtreg12.src.dir" location="${test.src.dir}/jtreg"/>
113 jsr166 1.294 <property name="jtreg13.src.dir" location="${test.src.dir}/jtreg"/>
114 jsr166 1.299 <property name="jtreg14.src.dir" location="${test.src.dir}/jtreg"/>
115 jsr166 1.310 <property name="jtreg15.src.dir" location="${test.src.dir}/jtreg"/>
116 jsr166 1.316 <property name="jtreg16.src.dir" location="${test.src.dir}/jtreg"/>
117 jsr166 1.301 <property name="jtreg.src.dir" location="${jtreg11.src.dir}"/>
118 tim 1.1 <property name="lib.dir" location="${basedir}/lib"/>
119 tim 1.9 <property name="dist.dir" location="${basedir}/dist"/>
120 dl 1.70 <property name="topsrc.dir" location="${basedir}/src"/>
121 jsr166 1.91
122 jsr166 1.125 <!-- Javadoc locations -->
123 jsr166 1.127 <property name="docs.dir" location="${build.dir}/docs"/>
124 jsr166 1.304 <property name="dist.docs.dir" location="${dist.dir}/docs"/>
125 tim 1.1
126     <!-- Jar locations -->
127 jsr166 1.109 <property name="product.jar" location="${build.dir}/jsr166.jar"/>
128 jsr166 1.106 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
129 jsr166 1.65
130 jsr166 1.152 <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
131 jsr166 1.257 <!-- Switched to https: in 2017-10 - JDK-8190312 -->
132 jsr166 1.304 <!-- <property name="java5.docroot.url" value="https://docs.oracle.com/javase/1.5.0/docs"/> -->
133     <!-- <property name="java6.docroot.url" value="https://docs.oracle.com/javase/6/docs"/> -->
134     <!-- <property name="java7.docroot.url" value="https://docs.oracle.com/javase/7/docs"/> -->
135     <!-- <property name="java8.docroot.url" value="https://docs.oracle.com/javase/8/docs"/> -->
136 jsr166 1.268 <!-- The location of jdk early access docs (RIP) -->
137 jsr166 1.276 <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
138 jsr166 1.303 <!-- <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> -->
139     <!-- <property name="java13.docroot.url" value="https://download.java.net/java/early_access/jdk13/docs"/> -->
140 jsr166 1.304 <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
141     <property name="java12.docroot.url" value="https://docs.oracle.com/en/java/javase/12/docs"/>
142     <property name="java13.docroot.url" value="https://docs.oracle.com/en/java/javase/13/docs"/>
143 jsr166 1.312 <property name="java14.docroot.url" value="https://docs.oracle.com/en/java/javase/14/docs"/>
144 jsr166 1.310 <property name="java15.docroot.url" value="https://download.java.net/java/early_access/jdk15/docs"/>
145 jsr166 1.316 <property name="java16.docroot.url" value="https://download.java.net/java/early_access/jdk16/docs"/>
146 jsr166 1.290 <!-- Default jdk doc location (latest stable LTS release seems best) -->
147     <property name="java.docroot.url" value="${java11.docroot.url}"/>
148 jsr166 1.151
149 jsr166 1.152 <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
150 jsr166 1.260 <property name="java11.api.url" value="${java11.docroot.url}/api/"/>
151 jsr166 1.275 <property name="java12.api.url" value="${java12.docroot.url}/api/"/>
152 jsr166 1.294 <property name="java13.api.url" value="${java13.docroot.url}/api/"/>
153 jsr166 1.299 <property name="java14.api.url" value="${java14.docroot.url}/api/"/>
154 jsr166 1.310 <property name="java15.api.url" value="${java15.docroot.url}/api/"/>
155 jsr166 1.316 <property name="java16.api.url" value="${java15.docroot.url}/api/"/>
156 jsr166 1.152 <property name="java.api.url" value="${java.docroot.url}/api/"/>
157 jsr166 1.91
158 jsr166 1.115 <!-- Define the "jtreg" task -->
159     <!-- See the docs in "jtreg -onlineHelp" -->
160     <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
161     classpath="${lib.dir}/jtreg.jar" />
162    
163 jsr166 1.304 <!-- Tck configuration options; see JSR166TestCase.java
164 jsr166 1.183 To profile a single tck test class:
165     ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
166     To stress test a single tck test class:
167     ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
168     To stress test a single tck test method:
169     ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
170     -->
171     <property name="jsr166.tckTestClass" value="JSR166TestCase"/>
172 jsr166 1.118 <macrodef name="run-tck-tests">
173 jsr166 1.122 <attribute name="tck.src.dir" default="${tck.src.dir}"/>
174 jsr166 1.118 <attribute name="target"/>
175 jsr166 1.138 <attribute name="compile-target" default="@{target}"/>
176 jsr166 1.118 <attribute name="workdir"/>
177 jsr166 1.122 <attribute name="classes"/>
178 dl 1.201 <!--
179     <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/>
180     -->
181     <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
182 jsr166 1.132 <element name="javac-elements" optional="true"/>
183 jsr166 1.182
184 jsr166 1.118 <sequential>
185    
186     <mkdir dir="@{workdir}/tck-classes"/>
187    
188 jsr166 1.122 <javac srcdir="@{tck.src.dir}"
189 jsr166 1.118 destdir="@{workdir}/tck-classes"
190     debug="${build.debug}"
191     debuglevel="${build.debuglevel}"
192     deprecation="${build.deprecation}"
193 jsr166 1.138 source="@{compile-target}"
194     target="@{compile-target}"
195 jsr166 1.118 classpath="${junit.jar}"
196     includeAntRuntime="false"
197     includeJavaRuntime="false"
198 jsr166 1.219 encoding="ASCII"
199 jsr166 1.138 executable="${javac@{compile-target}}"
200 jsr166 1.118 fork="true">
201    
202 jsr166 1.121 <include name="*.java"/>
203 jsr166 1.118 <compilerarg value="-XDignore.symbol.file=true"/>
204 jsr166 1.187 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
205 jsr166 1.304 <compilerarg value="-Xdoclint:reference/private"/>
206     <compilerarg value="--patch-module=java.base=@{classes}"/>
207 jsr166 1.118 <compilerarg line="${build.args}"/>
208 jsr166 1.132 <javac-elements/>
209 jsr166 1.118
210     </javac>
211    
212 jsr166 1.140 <java classname="${jsr166.tckTestClass}"
213 jsr166 1.118 failonerror="true"
214     jvm="${java@{target}}"
215     fork="true">
216 jsr166 1.304 <jvmarg value="--patch-module=java.base=@{classes}"/>
217     <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED"/>
218     <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED"/>
219     <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"/>
220     <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED"/>
221     <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED"/>
222     <jvmarg line="@{jvmflags}"/>
223     <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
224     <jvmarg line="${vmoptions}" if:set="vmoptions"/>
225    
226     <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
227     <syspropertyset id="system-properties-used-by-tck">
228     <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
229     <propertyref prefix="jsr166."/>
230     <propertyref name="test.timeout.factor"/>
231     </syspropertyset>
232    
233     <classpath>
234     <pathelement location="${junit.jar}"/>
235     <pathelement location="@{workdir}/tck-classes"/>
236     </classpath>
237 jsr166 1.118 </java>
238    
239     </sequential>
240     </macrodef>
241    
242 jsr166 1.165 <!-- Define jtreg test sets for different jdk versions -->
243 jsr166 1.266 <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
244     <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
245     <property name="jtreg.test.pattern" value="**/*.java"/>
246     <macrodef name="defjtregtests">
247     <attribute name="v"/>
248     <sequential>
249     <fileset dir="${jtreg@{v}.src.dir}">
250     <patternset id="jdk@{v}.jtreg.tests">
251     <include name="${jtreg.test.pattern}"/>
252     </patternset>
253     </fileset>
254     </sequential>
255     </macrodef>
256 jsr166 1.260
257 jsr166 1.316 <defjtregtests v="16"/>
258 jsr166 1.310 <defjtregtests v="15"/>
259 jsr166 1.299 <defjtregtests v="14"/>
260 jsr166 1.294 <defjtregtests v="13"/>
261 jsr166 1.275 <defjtregtests v="12"/>
262 jsr166 1.266 <defjtregtests v="11"/>
263 jsr166 1.165
264 jsr166 1.195 <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
265     <property name="jtreg.flags" value=""/>
266    
267 jsr166 1.135 <macrodef name="run-jtreg-tests">
268 jsr166 1.292 <!-- ant -Djtreg11.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
269 jsr166 1.135 <attribute name="target"/>
270     <attribute name="workdir"/>
271     <attribute name="classes"/>
272 jsr166 1.255 <attribute name="verbose" default="${jtreg.verbose}"/>
273 jsr166 1.135 <attribute name="jtregflags" default=""/>
274 jsr166 1.255 <element name="jtreg-elements" optional="true"/>
275 jsr166 1.182
276 jsr166 1.135 <sequential>
277 jsr166 1.182
278 jsr166 1.188 <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
279     <property name="jtreg.verbose" value="nopass,fail,error"/>
280    
281 jsr166 1.135 <delete dir="@{workdir}/JTwork" quiet="true"/>
282 jsr166 1.173 <jtreg dir="${jtreg@{target}.src.dir}"
283 jsr166 1.135 jdk="${jdk@{target}.home}"
284 jsr166 1.223 workDir="@{workdir}/JTwork">
285 jsr166 1.165 <patternset refid="jdk@{target}.jtreg.tests"/>
286 jsr166 1.304 <arg value="-javacoptions:--patch-module=java.base=@{classes}"/>
287     <arg value="-vmoptions:--patch-module=java.base=@{classes}"/>
288 jsr166 1.308 <arg value="-vmoptions:${vmoptions}" if:set="vmoptions"/>
289 jsr166 1.135 <arg value="-agentvm"/>
290 jsr166 1.223 <arg value="-noreport"/>
291 jsr166 1.255 <arg value="-verbose:@{verbose}"/>
292 jsr166 1.135 <arg value="-vmoptions:-esa -ea"/>
293     <arg value="-automatic"/>
294     <arg value="-k:!ignore"/>
295     <arg line="@{jtregflags}"/>
296 jsr166 1.195 <arg line="${jtreg.flags}"/>
297 jsr166 1.255 <jtreg-elements/>
298 jsr166 1.135 </jtreg>
299     </sequential>
300     </macrodef>
301    
302 jsr166 1.65 <!-- ALoops classpath -->
303     <path id="loops.classpath">
304     <pathelement location="${build.loops.dir}"/>
305     </path>
306    
307 jsr166 1.100 <!-- Support @jls tag, used in jdk8+ javadoc -->
308 jsr166 1.300 <!-- TODO: switch to @jls taglet, as supported by jdk14+ javadoc -->
309 jsr166 1.120 <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
310 jsr166 1.100 <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
311 tim 1.28
312 tim 1.59 <!-- Main targets -->
313 tim 1.28
314 jsr166 1.284 <!-- Default values: may seem strange ... -->
315     <!-- At runtime, target latest LTS, i.e. jdk11 -->
316     <!-- But at build time, target jdk9, for maximal binary portability -->
317 jsr166 1.301 <!-- ButButBut as of 2019-08, target jdk11 at build time -->
318 jsr166 1.290 <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
319     o override-methods=summary
320     o {@systemProperty ...}
321     o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
322     o 8202628: javadoc generates bad links in TestModules.java
323     -->
324     <property name="java.runtime.target" value="11"/>
325 jsr166 1.284 <property name="build.main.java" value="${java11}"/>
326 jsr166 1.301 <property name="build.main.javac" value="${javac11}"/>
327 jsr166 1.284 <property name="build.main.javadoc" value="${javadoc12}"/>
328 jsr166 1.290 <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
329 jsr166 1.151
330 dl 1.80 <target name="dists"
331 jsr166 1.304 depends="dist"
332 jsr166 1.240 description="Builds all public jars and docs"/>
333 tim 1.11
334 tim 1.28 <target name="compile"
335 jsr166 1.100 depends="configure-compiler"
336 jsr166 1.102 description="Compiles src/main sources to build dir">
337 tim 1.27
338 jsr166 1.182 <local name="destdir"/>
339 jsr166 1.247 <property name="destdir" value="${build.classes.dir}/java.base"/>
340 jsr166 1.182
341     <mkdir dir="${destdir}"/>
342 tim 1.27
343 tim 1.60 <javac srcdir="${src.dir}"
344 jsr166 1.182 destdir="${destdir}"
345 jsr166 1.100 debug="${build.debug}"
346     debuglevel="${build.debuglevel}"
347     deprecation="${build.deprecation}"
348     classpath=""
349     includeAntRuntime="false"
350     includeJavaRuntime="false"
351 jsr166 1.219 encoding="ASCII"
352 jsr166 1.151 executable="${build.main.javac}"
353 jsr166 1.100 fork="true">
354 tim 1.1
355 jsr166 1.68 <include name="**/*.java"/>
356 jsr166 1.247 <compilerarg value="--patch-module=java.base=${src.dir}"/>
357 jsr166 1.133 <compilerarg value="-Xprefer:source"/>
358 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
359 jsr166 1.302 <!-- Xlint:-removal for jdk12 Unsafe Object -> Reference renaming -->
360 jsr166 1.284 <compilerarg value="-Xlint:all,-removal"/>
361 jsr166 1.243 <compilerarg line="--doclint-format html5"/>
362 jsr166 1.314 <!-- Temporarily disable doclint for private elements, due to -->
363     <!-- https://bugs.openjdk.java.net/browse/JDK-8214571 -->
364     <!-- which is expected to be fixed in openjdk 11.0.8 -->
365 jsr166 1.313 <!-- <compilerarg value="-Xdoclint:all/protected,reference/private"/> -->
366 jsr166 1.314 <compilerarg value="-Xdoclint:all/protected"/>
367 jsr166 1.298 <compilerarg value="-Xdoclint/package:java.util.*"/>
368 jsr166 1.164 <compilerarg value="-Werror"/>
369 jsr166 1.146 <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
370 dl 1.73 <compilerarg line="${build.args}"/>
371 tim 1.1
372     </javac>
373     </target>
374    
375    
376 tim 1.28 <target name="jar"
377 tim 1.59 depends="compile"
378 jsr166 1.205 description="Builds library jar for src/main from compiled sources">
379 jsr166 1.212 <local name="subdir"/>
380     <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
381 tim 1.59 <jar destfile="${product.jar}">
382 jsr166 1.212 <fileset dir="${build.classes.dir}${subdir}"/>
383 jsr166 1.178 <manifest>
384 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
385     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
386 jsr166 1.178 </manifest>
387 tim 1.59 </jar>
388     </target>
389    
390 tim 1.1
391 tim 1.59 <target name="docs"
392 jsr166 1.102 description="Builds javadocs for src/main to dist dir">
393 tim 1.59
394 jsr166 1.307 <delete dir="${docs.dir}" quiet="true"/>
395 jsr166 1.127 <mkdir dir="${docs.dir}"/>
396 tim 1.59
397 jsr166 1.305 <!-- old school frames via docs/index.html?overview-summary.html -->
398     <!-- dash-dash-frames no longer a supported option in jdk13+ -->
399     <local name="use-frames"/>
400     <condition property="use-frames">
401     <equals arg1="${build.main.javadoc}" arg2="${javadoc12}"/>
402     </condition>
403    
404 jsr166 1.88 <!-- the packagenames="none" hack below prevents scanning the -->
405     <!-- sourcepath for packages -->
406    
407 jsr166 1.226 <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
408     <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
409     <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
410     <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
411     <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
412 jsr166 1.127 <javadoc destdir="${docs.dir}"
413 jsr166 1.88 packagenames="none"
414 jsr166 1.290 link="${java.api.url}"
415 jsr166 1.88 overview="${src.dir}/intro.html"
416 jsr166 1.130 access="${build.javadoc.access}"
417 jsr166 1.216 sourcepath="${src.dir}"
418 jsr166 1.100 classpath=""
419 jsr166 1.290 source="${build.main.javadoc.source}"
420 jsr166 1.247 executable="${build.main.javadoc}">
421 jsr166 1.291 <!-- TODO: JDK-8214571 failonerror = "true" -->
422 jsr166 1.119 <fileset dir="${src.dir}" defaultexcludes="yes">
423 jsr166 1.315 <include name="java/**/*.java"/>
424 jsr166 1.119 </fileset>
425 jsr166 1.290 <arg line="-Xdocrootparent ${java.docroot.url}"/>
426 jsr166 1.146 <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
427 jsr166 1.307 <arg value="-quiet"/>
428 jsr166 1.100 <arg value="-XDignore.symbol.file=true"/>
429 jsr166 1.243 <arg value="-html5"/>
430 jsr166 1.234 <arg value="--patch-module=java.base=${src.dir}"/>
431 jsr166 1.305 <arg value="--frames" if:set="use-frames"/>
432 jsr166 1.265 <arg value="--override-methods=summary"/>
433     <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
434     <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
435     <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
436 jsr166 1.273 <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
437 jsr166 1.220 <!-- tags added in jdk9: currently unused -->
438 jsr166 1.265 <!-- <arg value="-tag"/> <arg value="revised:X"/> -->
439     <!-- <arg value="-tag"/> <arg value="spec:X"/> -->
440 tim 1.59 </javadoc>
441     </target>
442    
443    
444 tim 1.28 <target name="dist"
445 jsr166 1.125 depends="dist-clean, dist-jar, dist-docs"
446 tim 1.16 description="Puts all distributable products in single hierarchy"/>
447 tim 1.1
448 tim 1.58
449 tim 1.11 <target name="clean"
450     description="Removes all build products">
451     <delete dir="${build.dir}"/>
452 tim 1.1 </target>
453    
454    
455 tim 1.11 <target name="dist-clean"
456     description="Removes all build and distribution products">
457 jsr166 1.148 <delete dir="${build.dir}"/>
458 tim 1.11 <delete dir="${dist.dir}"/>
459 tim 1.9 </target>
460 tim 1.10
461    
462 tim 1.28 <target name="dist-jar"
463     depends="clean, jar">
464 tim 1.11 <copy file="${product.jar}" todir="${dist.dir}"/>
465 jsr166 1.125 </target>
466 tim 1.27
467 jsr166 1.125 <target name="dist-docs"
468     depends="clean, docs">
469 jsr166 1.127 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
470 tim 1.11 </target>
471    
472 jsr166 1.174 <target name="tck"
473 jsr166 1.304 depends="jar"
474 jsr166 1.205 description="Runs tck tests for src/main directly">
475 jsr166 1.131
476     <run-tck-tests
477 jsr166 1.290 target="${java.runtime.target}"
478 jsr166 1.131 workdir="${build.dir}"
479 jsr166 1.236 classes="${product.jar}">
480     <javac-elements>
481     <compilerarg value="-Werror"/>
482     </javac-elements>
483     </run-tck-tests>
484 jsr166 1.131 </target>
485 tim 1.1
486 jsr166 1.174 <target name="tck-parallelism-1"
487 jsr166 1.208 description="Runs tck with common pool parallelism 1">
488 jsr166 1.174 <antcall target="tck">
489 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
490     </antcall>
491     </target>
492    
493 jsr166 1.174 <target name="tck-parallelism-0"
494 jsr166 1.208 description="Runs tck with common pool parallelism 0">
495 jsr166 1.174 <antcall target="tck">
496 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
497     </antcall>
498     </target>
499    
500 jsr166 1.213 <target name="tck-security-manager"
501     description="Runs tck with a security manager">
502     <antcall target="tck">
503     <param name="jsr166.useSecurityManager" value="true"/>
504     </antcall>
505     </target>
506    
507 jsr166 1.174 <target name="jtreg"
508 jsr166 1.304 depends="jar"
509 jsr166 1.205 description="Runs jtreg tests for src/main using the jtreg ant task">
510 jsr166 1.135 <run-jtreg-tests
511 jsr166 1.290 target="${java.runtime.target}"
512 jsr166 1.135 workdir="${build.dir}"
513     classes="${product.jar}"/>
514     </target>
515    
516 jsr166 1.142 <target name="test"
517 jsr166 1.208 depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
518 jsr166 1.241 description="Runs tck and jtreg tests for src/main"/>
519 jsr166 1.135
520 jsr166 1.284 <target name="test-version-permutations"
521 jsr166 1.316 depends="test11, test12, test13, test14, test15, test16,
522     test11-12, test11-13, test11-14, test11-15, test11-16,
523     clean, test, docs"
524 jsr166 1.311 description="Runs tck and jtreg tests for various build-time and runtime java versions"/>
525 jsr166 1.151
526 jsr166 1.284 <target name="test11">
527     <antcall>
528 jsr166 1.290 <param name="java.runtime.target" value="11"/>
529 jsr166 1.278 <param name="build.main.javac" value="${javac11}"/>
530 jsr166 1.290 <param name="build.main.javadoc" value="${javadoc12}"/>
531     <param name="build.main.javadoc.source" value="11"/>
532 jsr166 1.306 <target name="clean"/>
533 jsr166 1.284 <target name="test"/>
534     <target name="docs"/>
535 jsr166 1.260 </antcall>
536 jsr166 1.284 </target>
537 jsr166 1.260
538 jsr166 1.284 <target name="test12">
539     <antcall>
540 jsr166 1.290 <param name="java.runtime.target" value="12"/>
541 jsr166 1.278 <param name="build.main.javac" value="${javac12}"/>
542 jsr166 1.284 <param name="build.main.javadoc" value="${javadoc12}"/>
543 jsr166 1.290 <param name="build.main.javadoc.source" value="12"/>
544 jsr166 1.306 <target name="clean"/>
545 jsr166 1.284 <target name="test"/>
546     <target name="docs"/>
547 jsr166 1.278 </antcall>
548 jsr166 1.284 </target>
549    
550 jsr166 1.294 <target name="test13">
551     <antcall>
552     <param name="java.runtime.target" value="13"/>
553     <param name="build.main.javac" value="${javac13}"/>
554     <param name="build.main.javadoc" value="${javadoc13}"/>
555     <param name="build.main.javadoc.source" value="13"/>
556 jsr166 1.306 <target name="clean"/>
557 jsr166 1.294 <target name="test"/>
558     <target name="docs"/>
559     </antcall>
560     </target>
561    
562 jsr166 1.299 <target name="test14">
563     <antcall>
564     <param name="java.runtime.target" value="14"/>
565     <param name="build.main.javac" value="${javac14}"/>
566     <param name="build.main.javadoc" value="${javadoc14}"/>
567     <param name="build.main.javadoc.source" value="14"/>
568 jsr166 1.306 <target name="clean"/>
569 jsr166 1.299 <target name="test"/>
570     <target name="docs"/>
571     </antcall>
572     </target>
573    
574 jsr166 1.310 <target name="test15">
575     <antcall>
576     <param name="java.runtime.target" value="15"/>
577     <param name="build.main.javac" value="${javac15}"/>
578     <param name="build.main.javadoc" value="${javadoc15}"/>
579     <param name="build.main.javadoc.source" value="15"/>
580     <target name="clean"/>
581     <target name="test"/>
582     <target name="docs"/>
583     </antcall>
584     </target>
585    
586 jsr166 1.316 <target name="test16">
587     <antcall>
588     <param name="java.runtime.target" value="16"/>
589     <param name="build.main.javac" value="${javac16}"/>
590     <param name="build.main.javadoc" value="${javadoc16}"/>
591     <param name="build.main.javadoc.source" value="16"/>
592     <target name="clean"/>
593     <target name="test"/>
594     <target name="docs"/>
595     </antcall>
596     </target>
597    
598 jsr166 1.301 <target name="test11-12">
599 jsr166 1.284 <antcall>
600 jsr166 1.290 <param name="java.runtime.target" value="12"/>
601 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
602 jsr166 1.278 <param name="build.main.javadoc" value="${javadoc12}"/>
603 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
604 jsr166 1.306 <target name="clean"/>
605 jsr166 1.284 <target name="test"/>
606     <target name="docs"/>
607 jsr166 1.275 </antcall>
608 jsr166 1.248 </target>
609 jsr166 1.151
610 jsr166 1.301 <target name="test11-13">
611 jsr166 1.294 <antcall>
612     <param name="java.runtime.target" value="13"/>
613 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
614 jsr166 1.294 <param name="build.main.javadoc" value="${javadoc13}"/>
615 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
616 jsr166 1.306 <target name="clean"/>
617 jsr166 1.294 <target name="test"/>
618     <target name="docs"/>
619     </antcall>
620     </target>
621    
622 jsr166 1.301 <target name="test11-14">
623 jsr166 1.299 <antcall>
624     <param name="java.runtime.target" value="14"/>
625 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
626 jsr166 1.299 <param name="build.main.javadoc" value="${javadoc14}"/>
627 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
628 jsr166 1.306 <target name="clean"/>
629 jsr166 1.299 <target name="test"/>
630     <target name="docs"/>
631     </antcall>
632     </target>
633    
634 jsr166 1.310 <target name="test11-15">
635     <antcall>
636     <param name="java.runtime.target" value="15"/>
637     <param name="build.main.javac" value="${javac11}"/>
638     <param name="build.main.javadoc" value="${javadoc15}"/>
639     <param name="build.main.javadoc.source" value="11"/>
640     <target name="clean"/>
641     <target name="test"/>
642     <target name="docs"/>
643     </antcall>
644     </target>
645    
646 jsr166 1.316 <target name="test11-16">
647     <antcall>
648     <param name="java.runtime.target" value="16"/>
649     <param name="build.main.javac" value="${javac11}"/>
650     <param name="build.main.javadoc" value="${javadoc16}"/>
651     <param name="build.main.javadoc.source" value="11"/>
652     <target name="clean"/>
653     <target name="test"/>
654     <target name="docs"/>
655     </antcall>
656     </target>
657    
658 tim 1.18
659 tim 1.32 <target name="configure-compiler">
660 jsr166 1.180 <fail message="ant version too old">
661 jsr166 1.237 <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
662 jsr166 1.180 </fail>
663 tim 1.54
664     <property name="unchecked.option" value="-Xlint:unchecked"/>
665    
666     <condition property="warnunchecked.arg" value="${unchecked.option}">
667 tim 1.57 <istrue value="${build.warnunchecked}"/>
668 tim 1.32 </condition>
669    
670 tim 1.37 <property name="warnunchecked.arg" value=""/>
671 tim 1.34
672 tim 1.32
673     <!-- Common options in javac invocations -->
674 tim 1.57 <property name="build.args" value="${warnunchecked.arg}"/>
675 tim 1.33
676     </target>
677    
678    
679 jsr166 1.166 <target name="compile-test-loops" depends="jar"
680 jsr166 1.241 description="Compiles all the perf tests in src/test/loops">
681 jsr166 1.166
682     <mkdir dir="${build.dir}/test/loops"/>
683    
684     <javac srcdir="${basedir}/src/test/loops"
685     destdir="${build.dir}/test/loops"
686     debug="${build.debug}"
687     debuglevel="${build.debuglevel}"
688     deprecation="${build.deprecation}"
689     includeAntRuntime="false"
690     includeJavaRuntime="false"
691 jsr166 1.219 encoding="ASCII"
692 jsr166 1.247 executable="${build.main.javac}"
693 jsr166 1.166 fork="true">
694    
695     <include name="*.java"/>
696     <compilerarg value="-XDignore.symbol.file=true"/>
697 jsr166 1.304 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
698     <compilerarg value="--patch-module=java.base=${src.dir}"/>
699 jsr166 1.166 <compilerarg line="${build.args}"/>
700     </javac>
701     </target>
702    
703    
704 jsr166 1.304 <!-- old branches no longer maintained. build support deleted -->
705     <!-- jsr166 4jdk8; (no longer maintained as of 2019-10) -->
706 jsr166 1.241 <!-- jsr166 4jdk7 (no longer maintained) -->
707     <!-- jsr166x (no longer maintained) -->
708     <!-- jsr166y (no longer maintained) -->
709     <!-- extra166y (no longer maintained) -->
710     <!-- jsr166e (no longer maintained) -->
711 dl 1.90
712 jsr166 1.130 <!-- Find buglets that can be detected by static build tools -->
713    
714 jsr166 1.269 <!-- <target name="lint"> -->
715     <!-- <antcall target="dists"> -->
716     <!-- <param name="build.javadoc.access" value="protected"/> -->
717     <!-- </antcall> -->
718     <!-- </target> -->
719 jsr166 1.161
720     <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
721 jsr166 1.269 <target name="doclint-private">
722 jsr166 1.161 <antcall target="dist">
723 jsr166 1.130 <param name="build.javadoc.access" value="private"/>
724     </antcall>
725     </target>
726    
727 jsr166 1.236
728     <!-- ==============================================================
729 jsr166 1.287 Experimental errorprone support
730     https://errorprone.info
731     https://errorprone.info/docs/installation
732     https://github.com/google/error-prone/issues/1143
733 jsr166 1.236 =================================================================== -->
734 jsr166 1.288 <path id="errorprone.processorpath.path">
735 jsr166 1.309 <pathelement location="${lib.dir}/error_prone_core-2.3.4-with-dependencies.jar"/>
736 jsr166 1.288 <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
737     <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
738     <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
739 jsr166 1.309 <pathelement location="${lib.dir}/caffeine-2.8.0.jar"/>
740 jsr166 1.288 </path>
741     <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
742 jsr166 1.267 <property name="errorprone.jsr166.user.flags" value=""/>
743 jsr166 1.261 <property name="errorprone.jsr166.flags"
744 jsr166 1.263 value="-Xep:HashtableContains:OFF
745 jsr166 1.261 -Xep:JdkObsolete:OFF
746     -Xep:MissingOverride:OFF
747     -Xep:MissingFail:OFF
748 jsr166 1.288 -Xep:ThreadPriorityCheck:OFF
749 jsr166 1.263 -Xep:MixedArrayDimensions:ERROR
750     -Xep:RemoveUnusedImports:ERROR
751     -Xep:EmptyIf:ERROR
752     -Xep:MultipleTopLevelClasses:ERROR
753     -Xep:ClassName:ERROR
754     -Xep:LongLiteralLowerCaseSuffix:ERROR
755     -Xep:RedundantThrows:ERROR
756 jsr166 1.261 -Xep:IdentityBinaryExpression:WARN
757 jsr166 1.287 -Xep:ConstructorInvokesOverridable:WARN
758 jsr166 1.267 -Xep:MethodCanBeStatic:WARN
759     ${errorprone.jsr166.user.flags}"/>
760 jsr166 1.261 <!-- -Xep:WildcardImport:ERROR -->
761     <property name="errorprone.jsr166.test.flags"
762 jsr166 1.263 value="-Xep:StringSplitter:OFF
763     -Xep:BoxedPrimitiveConstructor:OFF
764     -Xep:ModifyingCollectionWithItself:OFF"/>
765 jsr166 1.261 <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
766 jsr166 1.236 <target name="errorprone"
767     depends="clean, configure-compiler"
768 jsr166 1.241 description="Run errorprone over jsr166 source code (experimental)">
769 jsr166 1.236
770     <local name="destdir"/>
771     <property name="destdir" value="${build.classes.dir}/java.base"/>
772     <mkdir dir="${destdir}"/>
773    
774     <javac srcdir="${src.dir}"
775     destdir="${destdir}"
776     debug="${build.debug}"
777     debuglevel="${build.debuglevel}"
778     deprecation="${build.deprecation}"
779     classpath=""
780     includeAntRuntime="false"
781     includeJavaRuntime="false"
782     encoding="ASCII"
783     executable="${build.main.javac}"
784     fork="true">
785    
786     <include name="**/*.java"/>
787 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
788     <compilerarg value="-J--illegal-access=permit"/>
789 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
790 jsr166 1.288 <compilerarg value="-processorpath"/>
791     <compilerarg pathref="errorprone.processorpath.path"/>
792 jsr166 1.236 <compilerarg value="-Xplugin:ErrorProne
793 jsr166 1.261 ${errorprone.jsr166.flags}"/>
794 jsr166 1.236 <compilerarg value="--patch-module=java.base=${src.dir}"/>
795     <compilerarg value="-Xprefer:source"/>
796     <compilerarg value="-XDignore.symbol.file=true"/>
797     <compilerarg value="-Xlint:all"/>
798     <compilerarg value="-Xdoclint:all/protected,reference/private"/>
799     <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
800     <compilerarg line="${build.args}"/>
801     </javac>
802    
803     <jar destfile="${product.jar}">
804     <fileset dir="${destdir}"/>
805     </jar>
806    
807     <run-tck-tests
808 jsr166 1.290 target="${java.runtime.target}"
809 jsr166 1.236 workdir="${build.dir}"
810     classes="${product.jar}">
811     <javac-elements>
812 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
813     <compilerarg value="-J--illegal-access=permit"/>
814 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
815 jsr166 1.286 <compilerarg line="-processorpath ${errorprone.processorpath}"/>
816 jsr166 1.241 <compilerarg value="-Xplugin:ErrorProne
817 jsr166 1.261 ${errorprone.jsr166.flags}
818     ${errorprone.jsr166.test.flags}"/>
819 jsr166 1.236 <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
820     </javac-elements>
821     </run-tck-tests>
822     </target>
823    
824 jsr166 1.261 <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
825 jsr166 1.262 <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
826 jsr166 1.255 <target name="errorprone-jtreg"
827     depends="jar"
828     description="Run errorprone over jtreg tests (experimental)">
829    
830     <run-jtreg-tests
831 jsr166 1.290 target="${java.runtime.target}"
832 jsr166 1.255 workdir="${build.dir}"
833     classes="${product.jar}"
834     verbose="all">
835     <jtreg-elements>
836 jsr166 1.264 <arg value="-javacoption:-XDcompilePolicy=simple"/>
837 jsr166 1.255 <arg value="-javacoption:-processorpath"/>
838 jsr166 1.286 <arg value="-javacoption:${errorprone.processorpath}"/>
839 jsr166 1.255 <arg value="-javacoption:-Xplugin:ErrorProne
840 jsr166 1.261 ${errorprone.jsr166.flags}
841     ${errorprone.jsr166.test.flags}
842 jsr166 1.270 -Xep:MultipleTopLevelClasses:WARN
843 jsr166 1.261 -Xep:NonAtomicVolatileUpdate:OFF"/>
844 jsr166 1.255 </jtreg-elements>
845     </run-jtreg-tests>
846     </target>
847    
848 jsr166 1.236
849 jsr166 1.229 <!-- ==============================================================
850     Running guava tests against jsr166 code
851     =================================================================== -->
852    
853     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
854 jsr166 1.230 <!-- organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
855     <!-- <property name="guava.version" value="21.0"/> -->
856 jsr166 1.229
857     <!-- HOWTO debug print a path id -->
858     <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
859     <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
860    
861     <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
862     <!-- organisation="com.google.guava" module="guava-tests"/> -->
863     <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
864     <!-- dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
865     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
866     <!-- organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
867    
868     <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
869     <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
870     <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
871     <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
872    
873     <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
874     <!-- type="*" inline="true" conf="*(private),*(public)" -->
875     <!-- pattern="${guava.dir}/[artifact].[ext]" -->
876     <!-- organisation="com.google.guava" module="guava-testlib"/> -->
877    
878     <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
879     <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
880     <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
881    
882     <target name="init-ivy">
883     <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
884     dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
885     <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
886     classpath="${build.dir}/ivy.jar"/>
887     </target>
888    
889     <target name="guava-tests" depends="jar, init-ivy"
890     description="Guava tests run against jsr166 collections">
891     <property name="guava.dir" value="${build.dir}/guava-testlib"/>
892     <mkdir dir="${guava.dir}"/>
893     <ivy:retrieve pathid="guava.testlib.classpath"
894     type="jar,bundle" inline="true" conf="default,master"
895     pattern="${guava.dir}/[artifact].[ext]"
896     organisation="com.google.guava" module="guava-testlib"/>
897 jsr166 1.230 <property name="guava.version" value="21.0"/>
898 jsr166 1.229 <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
899     dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
900     <junit printsummary="true" showoutput="true" haltonfailure="true"
901 jsr166 1.247 jvm="${build.main.java}" fork="true">
902 jsr166 1.252 <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
903 jsr166 1.229 <formatter type="brief"/>
904     <classpath>
905     <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
906     <path refid="guava.testlib.classpath"/>
907     </classpath>
908    
909     <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
910     <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
911     </junit>
912     </target>
913 jsr166 1.130
914 tim 1.1 </project>