ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.321
Committed: Sat Dec 12 18:58:10 2020 UTC (3 years, 4 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.320: +9 -2 lines
Log Message:
add support for jdk17

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