ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.246
Committed: Fri Jun 16 20:56:47 2017 UTC (6 years, 10 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.245: +6 -0 lines
Log Message:
define jdk10.jtreg.tests

File Contents

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