ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.320
Committed: Tue Sep 15 19:09:50 2020 UTC (3 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.319: +1 -1 lines
Log Message:
jdk 15 is 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.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.320 <property name="java15.docroot.url" value="https://docs.oracle.com/en/java/javase/15/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.317 <arg value="-Xdoclint:all,-missing"/>
431 jsr166 1.234 <arg value="--patch-module=java.base=${src.dir}"/>
432 jsr166 1.305 <arg value="--frames" if:set="use-frames"/>
433 jsr166 1.265 <arg value="--override-methods=summary"/>
434     <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
435     <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
436     <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
437 jsr166 1.273 <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
438 jsr166 1.220 <!-- tags added in jdk9: currently unused -->
439 jsr166 1.265 <!-- <arg value="-tag"/> <arg value="revised:X"/> -->
440     <!-- <arg value="-tag"/> <arg value="spec:X"/> -->
441 tim 1.59 </javadoc>
442     </target>
443    
444    
445 tim 1.28 <target name="dist"
446 jsr166 1.125 depends="dist-clean, dist-jar, dist-docs"
447 tim 1.16 description="Puts all distributable products in single hierarchy"/>
448 tim 1.1
449 tim 1.58
450 tim 1.11 <target name="clean"
451     description="Removes all build products">
452     <delete dir="${build.dir}"/>
453 tim 1.1 </target>
454    
455    
456 tim 1.11 <target name="dist-clean"
457     description="Removes all build and distribution products">
458 jsr166 1.148 <delete dir="${build.dir}"/>
459 tim 1.11 <delete dir="${dist.dir}"/>
460 tim 1.9 </target>
461 tim 1.10
462    
463 tim 1.28 <target name="dist-jar"
464     depends="clean, jar">
465 tim 1.11 <copy file="${product.jar}" todir="${dist.dir}"/>
466 jsr166 1.125 </target>
467 tim 1.27
468 jsr166 1.125 <target name="dist-docs"
469     depends="clean, docs">
470 jsr166 1.127 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
471 tim 1.11 </target>
472    
473 jsr166 1.174 <target name="tck"
474 jsr166 1.304 depends="jar"
475 jsr166 1.205 description="Runs tck tests for src/main directly">
476 jsr166 1.131
477     <run-tck-tests
478 jsr166 1.290 target="${java.runtime.target}"
479 jsr166 1.131 workdir="${build.dir}"
480 jsr166 1.236 classes="${product.jar}">
481     <javac-elements>
482     <compilerarg value="-Werror"/>
483     </javac-elements>
484     </run-tck-tests>
485 jsr166 1.131 </target>
486 tim 1.1
487 jsr166 1.174 <target name="tck-parallelism-1"
488 jsr166 1.208 description="Runs tck with common pool parallelism 1">
489 jsr166 1.174 <antcall target="tck">
490 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
491     </antcall>
492     </target>
493    
494 jsr166 1.174 <target name="tck-parallelism-0"
495 jsr166 1.208 description="Runs tck with common pool parallelism 0">
496 jsr166 1.174 <antcall target="tck">
497 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
498     </antcall>
499     </target>
500    
501 jsr166 1.213 <target name="tck-security-manager"
502     description="Runs tck with a security manager">
503     <antcall target="tck">
504     <param name="jsr166.useSecurityManager" value="true"/>
505     </antcall>
506     </target>
507    
508 jsr166 1.174 <target name="jtreg"
509 jsr166 1.304 depends="jar"
510 jsr166 1.205 description="Runs jtreg tests for src/main using the jtreg ant task">
511 jsr166 1.135 <run-jtreg-tests
512 jsr166 1.290 target="${java.runtime.target}"
513 jsr166 1.135 workdir="${build.dir}"
514     classes="${product.jar}"/>
515     </target>
516    
517 jsr166 1.142 <target name="test"
518 jsr166 1.208 depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
519 jsr166 1.241 description="Runs tck and jtreg tests for src/main"/>
520 jsr166 1.135
521 jsr166 1.284 <target name="test-version-permutations"
522 jsr166 1.316 depends="test11, test12, test13, test14, test15, test16,
523     test11-12, test11-13, test11-14, test11-15, test11-16,
524     clean, test, docs"
525 jsr166 1.311 description="Runs tck and jtreg tests for various build-time and runtime java versions"/>
526 jsr166 1.151
527 jsr166 1.284 <target name="test11">
528     <antcall>
529 jsr166 1.290 <param name="java.runtime.target" value="11"/>
530 jsr166 1.278 <param name="build.main.javac" value="${javac11}"/>
531 jsr166 1.290 <param name="build.main.javadoc" value="${javadoc12}"/>
532     <param name="build.main.javadoc.source" value="11"/>
533 jsr166 1.306 <target name="clean"/>
534 jsr166 1.284 <target name="test"/>
535     <target name="docs"/>
536 jsr166 1.260 </antcall>
537 jsr166 1.284 </target>
538 jsr166 1.260
539 jsr166 1.284 <target name="test12">
540     <antcall>
541 jsr166 1.290 <param name="java.runtime.target" value="12"/>
542 jsr166 1.278 <param name="build.main.javac" value="${javac12}"/>
543 jsr166 1.284 <param name="build.main.javadoc" value="${javadoc12}"/>
544 jsr166 1.290 <param name="build.main.javadoc.source" value="12"/>
545 jsr166 1.306 <target name="clean"/>
546 jsr166 1.284 <target name="test"/>
547     <target name="docs"/>
548 jsr166 1.278 </antcall>
549 jsr166 1.284 </target>
550    
551 jsr166 1.294 <target name="test13">
552     <antcall>
553     <param name="java.runtime.target" value="13"/>
554     <param name="build.main.javac" value="${javac13}"/>
555     <param name="build.main.javadoc" value="${javadoc13}"/>
556     <param name="build.main.javadoc.source" value="13"/>
557 jsr166 1.306 <target name="clean"/>
558 jsr166 1.294 <target name="test"/>
559     <target name="docs"/>
560     </antcall>
561     </target>
562    
563 jsr166 1.299 <target name="test14">
564     <antcall>
565     <param name="java.runtime.target" value="14"/>
566     <param name="build.main.javac" value="${javac14}"/>
567     <param name="build.main.javadoc" value="${javadoc14}"/>
568     <param name="build.main.javadoc.source" value="14"/>
569 jsr166 1.306 <target name="clean"/>
570 jsr166 1.299 <target name="test"/>
571     <target name="docs"/>
572     </antcall>
573     </target>
574    
575 jsr166 1.310 <target name="test15">
576     <antcall>
577     <param name="java.runtime.target" value="15"/>
578     <param name="build.main.javac" value="${javac15}"/>
579     <param name="build.main.javadoc" value="${javadoc15}"/>
580     <param name="build.main.javadoc.source" value="15"/>
581     <target name="clean"/>
582     <target name="test"/>
583     <target name="docs"/>
584     </antcall>
585     </target>
586    
587 jsr166 1.316 <target name="test16">
588     <antcall>
589     <param name="java.runtime.target" value="16"/>
590     <param name="build.main.javac" value="${javac16}"/>
591     <param name="build.main.javadoc" value="${javadoc16}"/>
592     <param name="build.main.javadoc.source" value="16"/>
593     <target name="clean"/>
594     <target name="test"/>
595     <target name="docs"/>
596     </antcall>
597     </target>
598    
599 jsr166 1.301 <target name="test11-12">
600 jsr166 1.284 <antcall>
601 jsr166 1.290 <param name="java.runtime.target" value="12"/>
602 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
603 jsr166 1.278 <param name="build.main.javadoc" value="${javadoc12}"/>
604 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
605 jsr166 1.306 <target name="clean"/>
606 jsr166 1.284 <target name="test"/>
607     <target name="docs"/>
608 jsr166 1.275 </antcall>
609 jsr166 1.248 </target>
610 jsr166 1.151
611 jsr166 1.301 <target name="test11-13">
612 jsr166 1.294 <antcall>
613     <param name="java.runtime.target" value="13"/>
614 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
615 jsr166 1.294 <param name="build.main.javadoc" value="${javadoc13}"/>
616 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
617 jsr166 1.306 <target name="clean"/>
618 jsr166 1.294 <target name="test"/>
619     <target name="docs"/>
620     </antcall>
621     </target>
622    
623 jsr166 1.301 <target name="test11-14">
624 jsr166 1.299 <antcall>
625     <param name="java.runtime.target" value="14"/>
626 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
627 jsr166 1.299 <param name="build.main.javadoc" value="${javadoc14}"/>
628 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
629 jsr166 1.306 <target name="clean"/>
630 jsr166 1.299 <target name="test"/>
631     <target name="docs"/>
632     </antcall>
633     </target>
634    
635 jsr166 1.310 <target name="test11-15">
636     <antcall>
637     <param name="java.runtime.target" value="15"/>
638     <param name="build.main.javac" value="${javac11}"/>
639     <param name="build.main.javadoc" value="${javadoc15}"/>
640     <param name="build.main.javadoc.source" value="11"/>
641     <target name="clean"/>
642     <target name="test"/>
643     <target name="docs"/>
644     </antcall>
645     </target>
646    
647 jsr166 1.316 <target name="test11-16">
648     <antcall>
649     <param name="java.runtime.target" value="16"/>
650     <param name="build.main.javac" value="${javac11}"/>
651     <param name="build.main.javadoc" value="${javadoc16}"/>
652     <param name="build.main.javadoc.source" value="11"/>
653     <target name="clean"/>
654     <target name="test"/>
655     <target name="docs"/>
656     </antcall>
657     </target>
658    
659 jsr166 1.317 <target name="docs16">
660     <antcall>
661     <param name="java.runtime.target" value="16"/>
662     <param name="build.main.javac" value="${javac16}"/>
663     <param name="build.main.javadoc" value="${javadoc16}"/>
664     <param name="build.main.javadoc.source" value="16"/>
665     <target name="clean"/>
666     <target name="docs"/>
667     </antcall>
668     </target>
669    
670 tim 1.18
671 tim 1.32 <target name="configure-compiler">
672 jsr166 1.180 <fail message="ant version too old">
673 jsr166 1.237 <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
674 jsr166 1.180 </fail>
675 tim 1.54
676     <property name="unchecked.option" value="-Xlint:unchecked"/>
677    
678     <condition property="warnunchecked.arg" value="${unchecked.option}">
679 tim 1.57 <istrue value="${build.warnunchecked}"/>
680 tim 1.32 </condition>
681    
682 tim 1.37 <property name="warnunchecked.arg" value=""/>
683 tim 1.34
684 tim 1.32
685     <!-- Common options in javac invocations -->
686 tim 1.57 <property name="build.args" value="${warnunchecked.arg}"/>
687 tim 1.33
688     </target>
689    
690    
691 jsr166 1.166 <target name="compile-test-loops" depends="jar"
692 jsr166 1.241 description="Compiles all the perf tests in src/test/loops">
693 jsr166 1.166
694     <mkdir dir="${build.dir}/test/loops"/>
695    
696     <javac srcdir="${basedir}/src/test/loops"
697     destdir="${build.dir}/test/loops"
698     debug="${build.debug}"
699     debuglevel="${build.debuglevel}"
700     deprecation="${build.deprecation}"
701     includeAntRuntime="false"
702     includeJavaRuntime="false"
703 jsr166 1.219 encoding="ASCII"
704 jsr166 1.247 executable="${build.main.javac}"
705 jsr166 1.166 fork="true">
706    
707     <include name="*.java"/>
708     <compilerarg value="-XDignore.symbol.file=true"/>
709 jsr166 1.304 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
710     <compilerarg value="--patch-module=java.base=${src.dir}"/>
711 jsr166 1.166 <compilerarg line="${build.args}"/>
712     </javac>
713     </target>
714    
715    
716 jsr166 1.304 <!-- old branches no longer maintained. build support deleted -->
717     <!-- jsr166 4jdk8; (no longer maintained as of 2019-10) -->
718 jsr166 1.241 <!-- jsr166 4jdk7 (no longer maintained) -->
719     <!-- jsr166x (no longer maintained) -->
720     <!-- jsr166y (no longer maintained) -->
721     <!-- extra166y (no longer maintained) -->
722     <!-- jsr166e (no longer maintained) -->
723 dl 1.90
724 jsr166 1.130 <!-- Find buglets that can be detected by static build tools -->
725    
726 jsr166 1.269 <!-- <target name="lint"> -->
727     <!-- <antcall target="dists"> -->
728     <!-- <param name="build.javadoc.access" value="protected"/> -->
729     <!-- </antcall> -->
730     <!-- </target> -->
731 jsr166 1.161
732     <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
733 jsr166 1.269 <target name="doclint-private">
734 jsr166 1.161 <antcall target="dist">
735 jsr166 1.130 <param name="build.javadoc.access" value="private"/>
736     </antcall>
737     </target>
738    
739 jsr166 1.236
740     <!-- ==============================================================
741 jsr166 1.287 Experimental errorprone support
742     https://errorprone.info
743     https://errorprone.info/docs/installation
744     https://github.com/google/error-prone/issues/1143
745 jsr166 1.236 =================================================================== -->
746 jsr166 1.288 <path id="errorprone.processorpath.path">
747 jsr166 1.309 <pathelement location="${lib.dir}/error_prone_core-2.3.4-with-dependencies.jar"/>
748 jsr166 1.288 <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
749     <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
750     <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
751 jsr166 1.309 <pathelement location="${lib.dir}/caffeine-2.8.0.jar"/>
752 jsr166 1.288 </path>
753     <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
754 jsr166 1.267 <property name="errorprone.jsr166.user.flags" value=""/>
755 jsr166 1.261 <property name="errorprone.jsr166.flags"
756 jsr166 1.263 value="-Xep:HashtableContains:OFF
757 jsr166 1.318 -Xep:PreferJavaTimeOverload:OFF
758 jsr166 1.261 -Xep:JdkObsolete:OFF
759     -Xep:MissingOverride:OFF
760     -Xep:MissingFail:OFF
761 jsr166 1.288 -Xep:ThreadPriorityCheck:OFF
762 jsr166 1.263 -Xep:MixedArrayDimensions:ERROR
763     -Xep:RemoveUnusedImports:ERROR
764     -Xep:EmptyIf:ERROR
765     -Xep:MultipleTopLevelClasses:ERROR
766     -Xep:ClassName:ERROR
767     -Xep:LongLiteralLowerCaseSuffix:ERROR
768     -Xep:RedundantThrows:ERROR
769 jsr166 1.261 -Xep:IdentityBinaryExpression:WARN
770 jsr166 1.287 -Xep:ConstructorInvokesOverridable:WARN
771 jsr166 1.267 -Xep:MethodCanBeStatic:WARN
772     ${errorprone.jsr166.user.flags}"/>
773 jsr166 1.261 <!-- -Xep:WildcardImport:ERROR -->
774     <property name="errorprone.jsr166.test.flags"
775 jsr166 1.263 value="-Xep:StringSplitter:OFF
776     -Xep:BoxedPrimitiveConstructor:OFF
777 jsr166 1.319 -Xep:UnnecessaryParentheses:OFF
778 jsr166 1.263 -Xep:ModifyingCollectionWithItself:OFF"/>
779 jsr166 1.261 <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
780 jsr166 1.236 <target name="errorprone"
781     depends="clean, configure-compiler"
782 jsr166 1.241 description="Run errorprone over jsr166 source code (experimental)">
783 jsr166 1.236
784     <local name="destdir"/>
785     <property name="destdir" value="${build.classes.dir}/java.base"/>
786     <mkdir dir="${destdir}"/>
787    
788     <javac srcdir="${src.dir}"
789     destdir="${destdir}"
790     debug="${build.debug}"
791     debuglevel="${build.debuglevel}"
792     deprecation="${build.deprecation}"
793     classpath=""
794     includeAntRuntime="false"
795     includeJavaRuntime="false"
796     encoding="ASCII"
797     executable="${build.main.javac}"
798     fork="true">
799    
800     <include name="**/*.java"/>
801 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
802     <compilerarg value="-J--illegal-access=permit"/>
803 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
804 jsr166 1.288 <compilerarg value="-processorpath"/>
805     <compilerarg pathref="errorprone.processorpath.path"/>
806 jsr166 1.236 <compilerarg value="-Xplugin:ErrorProne
807 jsr166 1.261 ${errorprone.jsr166.flags}"/>
808 jsr166 1.236 <compilerarg value="--patch-module=java.base=${src.dir}"/>
809     <compilerarg value="-Xprefer:source"/>
810     <compilerarg value="-XDignore.symbol.file=true"/>
811     <compilerarg value="-Xlint:all"/>
812     <compilerarg value="-Xdoclint:all/protected,reference/private"/>
813     <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
814     <compilerarg line="${build.args}"/>
815     </javac>
816    
817     <jar destfile="${product.jar}">
818     <fileset dir="${destdir}"/>
819     </jar>
820    
821     <run-tck-tests
822 jsr166 1.290 target="${java.runtime.target}"
823 jsr166 1.236 workdir="${build.dir}"
824     classes="${product.jar}">
825     <javac-elements>
826 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
827     <compilerarg value="-J--illegal-access=permit"/>
828 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
829 jsr166 1.286 <compilerarg line="-processorpath ${errorprone.processorpath}"/>
830 jsr166 1.241 <compilerarg value="-Xplugin:ErrorProne
831 jsr166 1.261 ${errorprone.jsr166.flags}
832     ${errorprone.jsr166.test.flags}"/>
833 jsr166 1.236 <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
834     </javac-elements>
835     </run-tck-tests>
836     </target>
837    
838 jsr166 1.261 <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
839 jsr166 1.262 <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
840 jsr166 1.255 <target name="errorprone-jtreg"
841     depends="jar"
842     description="Run errorprone over jtreg tests (experimental)">
843    
844     <run-jtreg-tests
845 jsr166 1.290 target="${java.runtime.target}"
846 jsr166 1.255 workdir="${build.dir}"
847     classes="${product.jar}"
848     verbose="all">
849     <jtreg-elements>
850 jsr166 1.264 <arg value="-javacoption:-XDcompilePolicy=simple"/>
851 jsr166 1.255 <arg value="-javacoption:-processorpath"/>
852 jsr166 1.286 <arg value="-javacoption:${errorprone.processorpath}"/>
853 jsr166 1.255 <arg value="-javacoption:-Xplugin:ErrorProne
854 jsr166 1.261 ${errorprone.jsr166.flags}
855     ${errorprone.jsr166.test.flags}
856 jsr166 1.270 -Xep:MultipleTopLevelClasses:WARN
857 jsr166 1.261 -Xep:NonAtomicVolatileUpdate:OFF"/>
858 jsr166 1.255 </jtreg-elements>
859     </run-jtreg-tests>
860     </target>
861    
862 jsr166 1.236
863 jsr166 1.229 <!-- ==============================================================
864     Running guava tests against jsr166 code
865     =================================================================== -->
866    
867     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
868 jsr166 1.230 <!-- organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
869     <!-- <property name="guava.version" value="21.0"/> -->
870 jsr166 1.229
871     <!-- HOWTO debug print a path id -->
872     <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
873     <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
874    
875     <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
876     <!-- organisation="com.google.guava" module="guava-tests"/> -->
877     <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
878     <!-- dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
879     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
880     <!-- organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
881    
882     <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
883     <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
884     <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
885     <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
886    
887     <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
888     <!-- type="*" inline="true" conf="*(private),*(public)" -->
889     <!-- pattern="${guava.dir}/[artifact].[ext]" -->
890     <!-- organisation="com.google.guava" module="guava-testlib"/> -->
891    
892     <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
893     <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
894     <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
895    
896     <target name="init-ivy">
897     <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
898     dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
899     <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
900     classpath="${build.dir}/ivy.jar"/>
901     </target>
902    
903     <target name="guava-tests" depends="jar, init-ivy"
904     description="Guava tests run against jsr166 collections">
905     <property name="guava.dir" value="${build.dir}/guava-testlib"/>
906     <mkdir dir="${guava.dir}"/>
907     <ivy:retrieve pathid="guava.testlib.classpath"
908     type="jar,bundle" inline="true" conf="default,master"
909     pattern="${guava.dir}/[artifact].[ext]"
910     organisation="com.google.guava" module="guava-testlib"/>
911 jsr166 1.230 <property name="guava.version" value="21.0"/>
912 jsr166 1.229 <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
913     dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
914     <junit printsummary="true" showoutput="true" haltonfailure="true"
915 jsr166 1.247 jvm="${build.main.java}" fork="true">
916 jsr166 1.252 <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
917 jsr166 1.229 <formatter type="brief"/>
918     <classpath>
919     <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
920     <path refid="guava.testlib.classpath"/>
921     </classpath>
922    
923     <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
924     <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
925     </junit>
926     </target>
927 jsr166 1.130
928 tim 1.1 </project>