ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.323
Committed: Tue Mar 16 20:38:44 2021 UTC (3 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.322: +1 -1 lines
Log Message:
jdk16 has been released

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.323 <property name="java16.docroot.url" value="https://docs.oracle.com/en/java/javase/16/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.322 <!-- concurrency > 1 mitigates slowness of some jtreg tests -->
289     <!-- BUT concurrency:auto starts "too many" VMs; just 1 free core each -->
290     <!-- In 2020 concurrency:3 seems like a sweet spot -->
291     <!-- Override using: ant -Djtreg.concurrency="N" jtreg -->
292     <property name="jtreg.concurrency" value="3"/>
293    
294     <delete dir="@{workdir}/JTwork" quiet="true"/>
295 jsr166 1.173 <jtreg dir="${jtreg@{target}.src.dir}"
296 jsr166 1.135 jdk="${jdk@{target}.home}"
297 jsr166 1.223 workDir="@{workdir}/JTwork">
298 jsr166 1.165 <patternset refid="jdk@{target}.jtreg.tests"/>
299 jsr166 1.322 <arg value="-javacoption:--patch-module=java.base=@{classes}"/>
300     <arg value="-vmoption:--patch-module=java.base=@{classes}"/>
301     <arg value="-vmoption:-Xmx256m"/>
302     <arg value="-concurrency:${jtreg.concurrency}"/>
303     <arg value="-vmoptions:-esa -ea"/>
304 jsr166 1.308 <arg value="-vmoptions:${vmoptions}" if:set="vmoptions"/>
305 jsr166 1.135 <arg value="-agentvm"/>
306 jsr166 1.223 <arg value="-noreport"/>
307 jsr166 1.255 <arg value="-verbose:@{verbose}"/>
308 jsr166 1.135 <arg value="-automatic"/>
309     <arg value="-k:!ignore"/>
310     <arg line="@{jtregflags}"/>
311 jsr166 1.195 <arg line="${jtreg.flags}"/>
312 jsr166 1.255 <jtreg-elements/>
313 jsr166 1.135 </jtreg>
314     </sequential>
315     </macrodef>
316    
317 jsr166 1.65 <!-- ALoops classpath -->
318     <path id="loops.classpath">
319     <pathelement location="${build.loops.dir}"/>
320     </path>
321    
322 jsr166 1.100 <!-- Support @jls tag, used in jdk8+ javadoc -->
323 jsr166 1.300 <!-- TODO: switch to @jls taglet, as supported by jdk14+ javadoc -->
324 jsr166 1.120 <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
325 jsr166 1.100 <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
326 tim 1.28
327 tim 1.59 <!-- Main targets -->
328 tim 1.28
329 jsr166 1.284 <!-- Default values: may seem strange ... -->
330     <!-- At runtime, target latest LTS, i.e. jdk11 -->
331     <!-- But at build time, target jdk9, for maximal binary portability -->
332 jsr166 1.301 <!-- ButButBut as of 2019-08, target jdk11 at build time -->
333 jsr166 1.290 <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
334     o override-methods=summary
335     o {@systemProperty ...}
336     o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
337     o 8202628: javadoc generates bad links in TestModules.java
338     -->
339     <property name="java.runtime.target" value="11"/>
340 jsr166 1.284 <property name="build.main.java" value="${java11}"/>
341 jsr166 1.301 <property name="build.main.javac" value="${javac11}"/>
342 jsr166 1.284 <property name="build.main.javadoc" value="${javadoc12}"/>
343 jsr166 1.290 <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
344 jsr166 1.151
345 dl 1.80 <target name="dists"
346 jsr166 1.304 depends="dist"
347 jsr166 1.240 description="Builds all public jars and docs"/>
348 tim 1.11
349 tim 1.28 <target name="compile"
350 jsr166 1.100 depends="configure-compiler"
351 jsr166 1.102 description="Compiles src/main sources to build dir">
352 tim 1.27
353 jsr166 1.182 <local name="destdir"/>
354 jsr166 1.247 <property name="destdir" value="${build.classes.dir}/java.base"/>
355 jsr166 1.182
356     <mkdir dir="${destdir}"/>
357 tim 1.27
358 tim 1.60 <javac srcdir="${src.dir}"
359 jsr166 1.182 destdir="${destdir}"
360 jsr166 1.100 debug="${build.debug}"
361     debuglevel="${build.debuglevel}"
362     deprecation="${build.deprecation}"
363     classpath=""
364     includeAntRuntime="false"
365     includeJavaRuntime="false"
366 jsr166 1.219 encoding="ASCII"
367 jsr166 1.151 executable="${build.main.javac}"
368 jsr166 1.100 fork="true">
369 tim 1.1
370 jsr166 1.68 <include name="**/*.java"/>
371 jsr166 1.247 <compilerarg value="--patch-module=java.base=${src.dir}"/>
372 jsr166 1.133 <compilerarg value="-Xprefer:source"/>
373 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
374 jsr166 1.302 <!-- Xlint:-removal for jdk12 Unsafe Object -> Reference renaming -->
375 jsr166 1.284 <compilerarg value="-Xlint:all,-removal"/>
376 jsr166 1.243 <compilerarg line="--doclint-format html5"/>
377 jsr166 1.314 <!-- Temporarily disable doclint for private elements, due to -->
378     <!-- https://bugs.openjdk.java.net/browse/JDK-8214571 -->
379     <!-- which is expected to be fixed in openjdk 11.0.8 -->
380 jsr166 1.313 <!-- <compilerarg value="-Xdoclint:all/protected,reference/private"/> -->
381 jsr166 1.314 <compilerarg value="-Xdoclint:all/protected"/>
382 jsr166 1.298 <compilerarg value="-Xdoclint/package:java.util.*"/>
383 jsr166 1.164 <compilerarg value="-Werror"/>
384 jsr166 1.146 <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
385 dl 1.73 <compilerarg line="${build.args}"/>
386 tim 1.1
387     </javac>
388     </target>
389    
390    
391 tim 1.28 <target name="jar"
392 tim 1.59 depends="compile"
393 jsr166 1.205 description="Builds library jar for src/main from compiled sources">
394 jsr166 1.212 <local name="subdir"/>
395     <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
396 tim 1.59 <jar destfile="${product.jar}">
397 jsr166 1.212 <fileset dir="${build.classes.dir}${subdir}"/>
398 jsr166 1.178 <manifest>
399 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
400     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
401 jsr166 1.178 </manifest>
402 tim 1.59 </jar>
403     </target>
404    
405 tim 1.1
406 tim 1.59 <target name="docs"
407 jsr166 1.102 description="Builds javadocs for src/main to dist dir">
408 tim 1.59
409 jsr166 1.307 <delete dir="${docs.dir}" quiet="true"/>
410 jsr166 1.127 <mkdir dir="${docs.dir}"/>
411 tim 1.59
412 jsr166 1.305 <!-- old school frames via docs/index.html?overview-summary.html -->
413     <!-- dash-dash-frames no longer a supported option in jdk13+ -->
414     <local name="use-frames"/>
415     <condition property="use-frames">
416     <equals arg1="${build.main.javadoc}" arg2="${javadoc12}"/>
417     </condition>
418    
419 jsr166 1.88 <!-- the packagenames="none" hack below prevents scanning the -->
420     <!-- sourcepath for packages -->
421    
422 jsr166 1.226 <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
423     <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
424     <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
425     <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
426     <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
427 jsr166 1.127 <javadoc destdir="${docs.dir}"
428 jsr166 1.88 packagenames="none"
429 jsr166 1.290 link="${java.api.url}"
430 jsr166 1.88 overview="${src.dir}/intro.html"
431 jsr166 1.130 access="${build.javadoc.access}"
432 jsr166 1.216 sourcepath="${src.dir}"
433 jsr166 1.100 classpath=""
434 jsr166 1.290 source="${build.main.javadoc.source}"
435 jsr166 1.247 executable="${build.main.javadoc}">
436 jsr166 1.291 <!-- TODO: JDK-8214571 failonerror = "true" -->
437 jsr166 1.119 <fileset dir="${src.dir}" defaultexcludes="yes">
438 jsr166 1.315 <include name="java/**/*.java"/>
439 jsr166 1.119 </fileset>
440 jsr166 1.290 <arg line="-Xdocrootparent ${java.docroot.url}"/>
441 jsr166 1.146 <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
442 jsr166 1.307 <arg value="-quiet"/>
443 jsr166 1.100 <arg value="-XDignore.symbol.file=true"/>
444 jsr166 1.243 <arg value="-html5"/>
445 jsr166 1.317 <arg value="-Xdoclint:all,-missing"/>
446 jsr166 1.234 <arg value="--patch-module=java.base=${src.dir}"/>
447 jsr166 1.305 <arg value="--frames" if:set="use-frames"/>
448 jsr166 1.265 <arg value="--override-methods=summary"/>
449     <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
450     <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
451     <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
452 jsr166 1.273 <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
453 jsr166 1.220 <!-- tags added in jdk9: currently unused -->
454 jsr166 1.265 <!-- <arg value="-tag"/> <arg value="revised:X"/> -->
455     <!-- <arg value="-tag"/> <arg value="spec:X"/> -->
456 tim 1.59 </javadoc>
457     </target>
458    
459    
460 tim 1.28 <target name="dist"
461 jsr166 1.125 depends="dist-clean, dist-jar, dist-docs"
462 tim 1.16 description="Puts all distributable products in single hierarchy"/>
463 tim 1.1
464 tim 1.58
465 tim 1.11 <target name="clean"
466     description="Removes all build products">
467     <delete dir="${build.dir}"/>
468 tim 1.1 </target>
469    
470    
471 tim 1.11 <target name="dist-clean"
472     description="Removes all build and distribution products">
473 jsr166 1.148 <delete dir="${build.dir}"/>
474 tim 1.11 <delete dir="${dist.dir}"/>
475 tim 1.9 </target>
476 tim 1.10
477    
478 tim 1.28 <target name="dist-jar"
479     depends="clean, jar">
480 tim 1.11 <copy file="${product.jar}" todir="${dist.dir}"/>
481 jsr166 1.125 </target>
482 tim 1.27
483 jsr166 1.125 <target name="dist-docs"
484     depends="clean, docs">
485 jsr166 1.127 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
486 tim 1.11 </target>
487    
488 jsr166 1.174 <target name="tck"
489 jsr166 1.304 depends="jar"
490 jsr166 1.205 description="Runs tck tests for src/main directly">
491 jsr166 1.131
492     <run-tck-tests
493 jsr166 1.290 target="${java.runtime.target}"
494 jsr166 1.131 workdir="${build.dir}"
495 jsr166 1.236 classes="${product.jar}">
496     <javac-elements>
497     <compilerarg value="-Werror"/>
498     </javac-elements>
499     </run-tck-tests>
500 jsr166 1.131 </target>
501 tim 1.1
502 jsr166 1.174 <target name="tck-parallelism-1"
503 jsr166 1.208 description="Runs tck with common pool parallelism 1">
504 jsr166 1.174 <antcall target="tck">
505 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
506     </antcall>
507     </target>
508    
509 jsr166 1.174 <target name="tck-parallelism-0"
510 jsr166 1.208 description="Runs tck with common pool parallelism 0">
511 jsr166 1.174 <antcall target="tck">
512 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
513     </antcall>
514     </target>
515    
516 jsr166 1.213 <target name="tck-security-manager"
517     description="Runs tck with a security manager">
518     <antcall target="tck">
519     <param name="jsr166.useSecurityManager" value="true"/>
520     </antcall>
521     </target>
522    
523 jsr166 1.174 <target name="jtreg"
524 jsr166 1.304 depends="jar"
525 jsr166 1.205 description="Runs jtreg tests for src/main using the jtreg ant task">
526 jsr166 1.135 <run-jtreg-tests
527 jsr166 1.290 target="${java.runtime.target}"
528 jsr166 1.135 workdir="${build.dir}"
529     classes="${product.jar}"/>
530     </target>
531    
532 jsr166 1.142 <target name="test"
533 jsr166 1.208 depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
534 jsr166 1.241 description="Runs tck and jtreg tests for src/main"/>
535 jsr166 1.135
536 jsr166 1.284 <target name="test-version-permutations"
537 jsr166 1.316 depends="test11, test12, test13, test14, test15, test16,
538     test11-12, test11-13, test11-14, test11-15, test11-16,
539     clean, test, docs"
540 jsr166 1.311 description="Runs tck and jtreg tests for various build-time and runtime java versions"/>
541 jsr166 1.151
542 jsr166 1.284 <target name="test11">
543     <antcall>
544 jsr166 1.290 <param name="java.runtime.target" value="11"/>
545 jsr166 1.278 <param name="build.main.javac" value="${javac11}"/>
546 jsr166 1.290 <param name="build.main.javadoc" value="${javadoc12}"/>
547     <param name="build.main.javadoc.source" value="11"/>
548 jsr166 1.306 <target name="clean"/>
549 jsr166 1.284 <target name="test"/>
550     <target name="docs"/>
551 jsr166 1.260 </antcall>
552 jsr166 1.284 </target>
553 jsr166 1.260
554 jsr166 1.284 <target name="test12">
555     <antcall>
556 jsr166 1.290 <param name="java.runtime.target" value="12"/>
557 jsr166 1.278 <param name="build.main.javac" value="${javac12}"/>
558 jsr166 1.284 <param name="build.main.javadoc" value="${javadoc12}"/>
559 jsr166 1.290 <param name="build.main.javadoc.source" value="12"/>
560 jsr166 1.306 <target name="clean"/>
561 jsr166 1.284 <target name="test"/>
562     <target name="docs"/>
563 jsr166 1.278 </antcall>
564 jsr166 1.284 </target>
565    
566 jsr166 1.294 <target name="test13">
567     <antcall>
568     <param name="java.runtime.target" value="13"/>
569     <param name="build.main.javac" value="${javac13}"/>
570     <param name="build.main.javadoc" value="${javadoc13}"/>
571     <param name="build.main.javadoc.source" value="13"/>
572 jsr166 1.306 <target name="clean"/>
573 jsr166 1.294 <target name="test"/>
574     <target name="docs"/>
575     </antcall>
576     </target>
577    
578 jsr166 1.299 <target name="test14">
579     <antcall>
580     <param name="java.runtime.target" value="14"/>
581     <param name="build.main.javac" value="${javac14}"/>
582     <param name="build.main.javadoc" value="${javadoc14}"/>
583     <param name="build.main.javadoc.source" value="14"/>
584 jsr166 1.306 <target name="clean"/>
585 jsr166 1.299 <target name="test"/>
586     <target name="docs"/>
587     </antcall>
588     </target>
589    
590 jsr166 1.310 <target name="test15">
591     <antcall>
592     <param name="java.runtime.target" value="15"/>
593     <param name="build.main.javac" value="${javac15}"/>
594     <param name="build.main.javadoc" value="${javadoc15}"/>
595     <param name="build.main.javadoc.source" value="15"/>
596     <target name="clean"/>
597     <target name="test"/>
598     <target name="docs"/>
599     </antcall>
600     </target>
601    
602 jsr166 1.316 <target name="test16">
603     <antcall>
604     <param name="java.runtime.target" value="16"/>
605     <param name="build.main.javac" value="${javac16}"/>
606     <param name="build.main.javadoc" value="${javadoc16}"/>
607     <param name="build.main.javadoc.source" value="16"/>
608     <target name="clean"/>
609     <target name="test"/>
610     <target name="docs"/>
611     </antcall>
612     </target>
613    
614 jsr166 1.301 <target name="test11-12">
615 jsr166 1.284 <antcall>
616 jsr166 1.290 <param name="java.runtime.target" value="12"/>
617 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
618 jsr166 1.278 <param name="build.main.javadoc" value="${javadoc12}"/>
619 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
620 jsr166 1.306 <target name="clean"/>
621 jsr166 1.284 <target name="test"/>
622     <target name="docs"/>
623 jsr166 1.275 </antcall>
624 jsr166 1.248 </target>
625 jsr166 1.151
626 jsr166 1.301 <target name="test11-13">
627 jsr166 1.294 <antcall>
628     <param name="java.runtime.target" value="13"/>
629 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
630 jsr166 1.294 <param name="build.main.javadoc" value="${javadoc13}"/>
631 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
632 jsr166 1.306 <target name="clean"/>
633 jsr166 1.294 <target name="test"/>
634     <target name="docs"/>
635     </antcall>
636     </target>
637    
638 jsr166 1.301 <target name="test11-14">
639 jsr166 1.299 <antcall>
640     <param name="java.runtime.target" value="14"/>
641 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
642 jsr166 1.299 <param name="build.main.javadoc" value="${javadoc14}"/>
643 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
644 jsr166 1.306 <target name="clean"/>
645 jsr166 1.299 <target name="test"/>
646     <target name="docs"/>
647     </antcall>
648     </target>
649    
650 jsr166 1.310 <target name="test11-15">
651     <antcall>
652     <param name="java.runtime.target" value="15"/>
653     <param name="build.main.javac" value="${javac11}"/>
654     <param name="build.main.javadoc" value="${javadoc15}"/>
655     <param name="build.main.javadoc.source" value="11"/>
656     <target name="clean"/>
657     <target name="test"/>
658     <target name="docs"/>
659     </antcall>
660     </target>
661    
662 jsr166 1.316 <target name="test11-16">
663     <antcall>
664     <param name="java.runtime.target" value="16"/>
665     <param name="build.main.javac" value="${javac11}"/>
666     <param name="build.main.javadoc" value="${javadoc16}"/>
667     <param name="build.main.javadoc.source" value="11"/>
668     <target name="clean"/>
669     <target name="test"/>
670     <target name="docs"/>
671     </antcall>
672     </target>
673    
674 jsr166 1.317 <target name="docs16">
675     <antcall>
676     <param name="java.runtime.target" value="16"/>
677     <param name="build.main.javac" value="${javac16}"/>
678     <param name="build.main.javadoc" value="${javadoc16}"/>
679     <param name="build.main.javadoc.source" value="16"/>
680     <target name="clean"/>
681     <target name="docs"/>
682     </antcall>
683     </target>
684    
685 tim 1.18
686 tim 1.32 <target name="configure-compiler">
687 jsr166 1.180 <fail message="ant version too old">
688 jsr166 1.237 <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
689 jsr166 1.180 </fail>
690 tim 1.54
691     <property name="unchecked.option" value="-Xlint:unchecked"/>
692    
693     <condition property="warnunchecked.arg" value="${unchecked.option}">
694 tim 1.57 <istrue value="${build.warnunchecked}"/>
695 tim 1.32 </condition>
696    
697 tim 1.37 <property name="warnunchecked.arg" value=""/>
698 tim 1.34
699 tim 1.32
700     <!-- Common options in javac invocations -->
701 tim 1.57 <property name="build.args" value="${warnunchecked.arg}"/>
702 tim 1.33
703     </target>
704    
705    
706 jsr166 1.166 <target name="compile-test-loops" depends="jar"
707 jsr166 1.241 description="Compiles all the perf tests in src/test/loops">
708 jsr166 1.166
709     <mkdir dir="${build.dir}/test/loops"/>
710    
711     <javac srcdir="${basedir}/src/test/loops"
712     destdir="${build.dir}/test/loops"
713     debug="${build.debug}"
714     debuglevel="${build.debuglevel}"
715     deprecation="${build.deprecation}"
716     includeAntRuntime="false"
717     includeJavaRuntime="false"
718 jsr166 1.219 encoding="ASCII"
719 jsr166 1.247 executable="${build.main.javac}"
720 jsr166 1.166 fork="true">
721    
722     <include name="*.java"/>
723     <compilerarg value="-XDignore.symbol.file=true"/>
724 jsr166 1.304 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
725     <compilerarg value="--patch-module=java.base=${src.dir}"/>
726 jsr166 1.166 <compilerarg line="${build.args}"/>
727     </javac>
728     </target>
729    
730    
731 jsr166 1.304 <!-- old branches no longer maintained. build support deleted -->
732     <!-- jsr166 4jdk8; (no longer maintained as of 2019-10) -->
733 jsr166 1.241 <!-- jsr166 4jdk7 (no longer maintained) -->
734     <!-- jsr166x (no longer maintained) -->
735     <!-- jsr166y (no longer maintained) -->
736     <!-- extra166y (no longer maintained) -->
737     <!-- jsr166e (no longer maintained) -->
738 dl 1.90
739 jsr166 1.130 <!-- Find buglets that can be detected by static build tools -->
740    
741 jsr166 1.269 <!-- <target name="lint"> -->
742     <!-- <antcall target="dists"> -->
743     <!-- <param name="build.javadoc.access" value="protected"/> -->
744     <!-- </antcall> -->
745     <!-- </target> -->
746 jsr166 1.161
747     <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
748 jsr166 1.269 <target name="doclint-private">
749 jsr166 1.161 <antcall target="dist">
750 jsr166 1.130 <param name="build.javadoc.access" value="private"/>
751     </antcall>
752     </target>
753    
754 jsr166 1.236
755     <!-- ==============================================================
756 jsr166 1.287 Experimental errorprone support
757     https://errorprone.info
758     https://errorprone.info/docs/installation
759     https://github.com/google/error-prone/issues/1143
760 jsr166 1.236 =================================================================== -->
761 jsr166 1.288 <path id="errorprone.processorpath.path">
762 jsr166 1.309 <pathelement location="${lib.dir}/error_prone_core-2.3.4-with-dependencies.jar"/>
763 jsr166 1.288 <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
764     <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
765     <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
766 jsr166 1.309 <pathelement location="${lib.dir}/caffeine-2.8.0.jar"/>
767 jsr166 1.288 </path>
768     <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
769 jsr166 1.267 <property name="errorprone.jsr166.user.flags" value=""/>
770 jsr166 1.261 <property name="errorprone.jsr166.flags"
771 jsr166 1.263 value="-Xep:HashtableContains:OFF
772 jsr166 1.318 -Xep:PreferJavaTimeOverload:OFF
773 jsr166 1.261 -Xep:JdkObsolete:OFF
774     -Xep:MissingOverride:OFF
775     -Xep:MissingFail:OFF
776 jsr166 1.288 -Xep:ThreadPriorityCheck:OFF
777 jsr166 1.263 -Xep:MixedArrayDimensions:ERROR
778     -Xep:RemoveUnusedImports:ERROR
779     -Xep:EmptyIf:ERROR
780     -Xep:MultipleTopLevelClasses:ERROR
781     -Xep:ClassName:ERROR
782     -Xep:LongLiteralLowerCaseSuffix:ERROR
783     -Xep:RedundantThrows:ERROR
784 jsr166 1.261 -Xep:IdentityBinaryExpression:WARN
785 jsr166 1.287 -Xep:ConstructorInvokesOverridable:WARN
786 jsr166 1.267 -Xep:MethodCanBeStatic:WARN
787     ${errorprone.jsr166.user.flags}"/>
788 jsr166 1.261 <!-- -Xep:WildcardImport:ERROR -->
789     <property name="errorprone.jsr166.test.flags"
790 jsr166 1.263 value="-Xep:StringSplitter:OFF
791     -Xep:BoxedPrimitiveConstructor:OFF
792 jsr166 1.319 -Xep:UnnecessaryParentheses:OFF
793 jsr166 1.263 -Xep:ModifyingCollectionWithItself:OFF"/>
794 jsr166 1.261 <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
795 jsr166 1.236 <target name="errorprone"
796     depends="clean, configure-compiler"
797 jsr166 1.241 description="Run errorprone over jsr166 source code (experimental)">
798 jsr166 1.236
799     <local name="destdir"/>
800     <property name="destdir" value="${build.classes.dir}/java.base"/>
801     <mkdir dir="${destdir}"/>
802    
803     <javac srcdir="${src.dir}"
804     destdir="${destdir}"
805     debug="${build.debug}"
806     debuglevel="${build.debuglevel}"
807     deprecation="${build.deprecation}"
808     classpath=""
809     includeAntRuntime="false"
810     includeJavaRuntime="false"
811     encoding="ASCII"
812     executable="${build.main.javac}"
813     fork="true">
814    
815     <include name="**/*.java"/>
816 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
817     <compilerarg value="-J--illegal-access=permit"/>
818 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
819 jsr166 1.288 <compilerarg value="-processorpath"/>
820     <compilerarg pathref="errorprone.processorpath.path"/>
821 jsr166 1.236 <compilerarg value="-Xplugin:ErrorProne
822 jsr166 1.261 ${errorprone.jsr166.flags}"/>
823 jsr166 1.236 <compilerarg value="--patch-module=java.base=${src.dir}"/>
824     <compilerarg value="-Xprefer:source"/>
825     <compilerarg value="-XDignore.symbol.file=true"/>
826     <compilerarg value="-Xlint:all"/>
827     <compilerarg value="-Xdoclint:all/protected,reference/private"/>
828     <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
829     <compilerarg line="${build.args}"/>
830     </javac>
831    
832     <jar destfile="${product.jar}">
833     <fileset dir="${destdir}"/>
834     </jar>
835    
836     <run-tck-tests
837 jsr166 1.290 target="${java.runtime.target}"
838 jsr166 1.236 workdir="${build.dir}"
839     classes="${product.jar}">
840     <javac-elements>
841 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
842     <compilerarg value="-J--illegal-access=permit"/>
843 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
844 jsr166 1.286 <compilerarg line="-processorpath ${errorprone.processorpath}"/>
845 jsr166 1.241 <compilerarg value="-Xplugin:ErrorProne
846 jsr166 1.261 ${errorprone.jsr166.flags}
847     ${errorprone.jsr166.test.flags}"/>
848 jsr166 1.236 <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
849     </javac-elements>
850     </run-tck-tests>
851     </target>
852    
853 jsr166 1.261 <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
854 jsr166 1.262 <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
855 jsr166 1.255 <target name="errorprone-jtreg"
856     depends="jar"
857     description="Run errorprone over jtreg tests (experimental)">
858    
859     <run-jtreg-tests
860 jsr166 1.290 target="${java.runtime.target}"
861 jsr166 1.255 workdir="${build.dir}"
862     classes="${product.jar}"
863     verbose="all">
864     <jtreg-elements>
865 jsr166 1.264 <arg value="-javacoption:-XDcompilePolicy=simple"/>
866 jsr166 1.255 <arg value="-javacoption:-processorpath"/>
867 jsr166 1.286 <arg value="-javacoption:${errorprone.processorpath}"/>
868 jsr166 1.255 <arg value="-javacoption:-Xplugin:ErrorProne
869 jsr166 1.261 ${errorprone.jsr166.flags}
870     ${errorprone.jsr166.test.flags}
871 jsr166 1.270 -Xep:MultipleTopLevelClasses:WARN
872 jsr166 1.261 -Xep:NonAtomicVolatileUpdate:OFF"/>
873 jsr166 1.255 </jtreg-elements>
874     </run-jtreg-tests>
875     </target>
876    
877 jsr166 1.236
878 jsr166 1.229 <!-- ==============================================================
879     Running guava tests against jsr166 code
880     =================================================================== -->
881    
882     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
883 jsr166 1.230 <!-- organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
884     <!-- <property name="guava.version" value="21.0"/> -->
885 jsr166 1.229
886     <!-- HOWTO debug print a path id -->
887     <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
888     <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
889    
890     <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
891     <!-- organisation="com.google.guava" module="guava-tests"/> -->
892     <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
893     <!-- dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
894     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
895     <!-- organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
896    
897     <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
898     <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
899     <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
900     <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
901    
902     <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
903     <!-- type="*" inline="true" conf="*(private),*(public)" -->
904     <!-- pattern="${guava.dir}/[artifact].[ext]" -->
905     <!-- organisation="com.google.guava" module="guava-testlib"/> -->
906    
907     <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
908     <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
909     <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
910    
911     <target name="init-ivy">
912     <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
913     dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
914     <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
915     classpath="${build.dir}/ivy.jar"/>
916     </target>
917    
918     <target name="guava-tests" depends="jar, init-ivy"
919     description="Guava tests run against jsr166 collections">
920     <property name="guava.dir" value="${build.dir}/guava-testlib"/>
921     <mkdir dir="${guava.dir}"/>
922     <ivy:retrieve pathid="guava.testlib.classpath"
923     type="jar,bundle" inline="true" conf="default,master"
924     pattern="${guava.dir}/[artifact].[ext]"
925     organisation="com.google.guava" module="guava-testlib"/>
926 jsr166 1.230 <property name="guava.version" value="21.0"/>
927 jsr166 1.229 <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
928     dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
929     <junit printsummary="true" showoutput="true" haltonfailure="true"
930 jsr166 1.247 jvm="${build.main.java}" fork="true">
931 jsr166 1.252 <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
932 jsr166 1.229 <formatter type="brief"/>
933     <classpath>
934     <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
935     <path refid="guava.testlib.classpath"/>
936     </classpath>
937    
938     <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
939     <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
940     </junit>
941     </target>
942 jsr166 1.130
943 tim 1.1 </project>