ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.242
Committed: Sat Apr 1 21:47:32 2017 UTC (7 years ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.241: +12 -0 lines
Log Message:
enable more experimental errorprone checks

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.173 <fileset dir="${jtreg9.src.dir}">
300 jsr166 1.165 <patternset id="jdk9.jtreg.tests">
301     <include name="**/*.java"/>
302     </patternset>
303     </fileset>
304    
305 jsr166 1.173 <fileset dir="${jtreg8.src.dir}">
306 jsr166 1.165 <patternset id="jdk8.jtreg.tests">
307     <include name="**/*.java"/>
308     </patternset>
309     </fileset>
310    
311 jsr166 1.173 <fileset dir="${jtreg7.src.dir}">
312 jsr166 1.165 <patternset id="jdk7.jtreg.tests">
313     <include name="**/*.java"/>
314     </patternset>
315     </fileset>
316    
317 jsr166 1.195 <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
318     <property name="jtreg.flags" value=""/>
319    
320 jsr166 1.135 <macrodef name="run-jtreg-tests">
321 jsr166 1.174 <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
322 jsr166 1.135 <attribute name="source" default="7"/>
323     <attribute name="target"/>
324     <attribute name="workdir"/>
325     <attribute name="classes"/>
326     <attribute name="jtregflags" default=""/>
327 jsr166 1.182
328 jsr166 1.135 <sequential>
329 jsr166 1.182
330 jsr166 1.188 <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
331     <property name="jtreg.verbose" value="nopass,fail,error"/>
332    
333 jsr166 1.182 <local name="modules"/>
334     <condition property="modules">
335     <available file="${jdk@{target}.home}/jmods" type="dir"/>
336     </condition>
337    
338 jsr166 1.135 <delete dir="@{workdir}/JTwork" quiet="true"/>
339 jsr166 1.173 <jtreg dir="${jtreg@{target}.src.dir}"
340 jsr166 1.135 jdk="${jdk@{target}.home}"
341 jsr166 1.223 workDir="@{workdir}/JTwork">
342 jsr166 1.165 <patternset refid="jdk@{target}.jtreg.tests"/>
343 jsr166 1.182 <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
344 jsr166 1.225 <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>
345     <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>
346 jsr166 1.135 <arg value="-agentvm"/>
347 jsr166 1.223 <arg value="-noreport"/>
348 jsr166 1.188 <arg value="-verbose:${jtreg.verbose}"/>
349 jsr166 1.135 <arg value="-vmoptions:-esa -ea"/>
350     <arg value="-automatic"/>
351     <arg value="-k:!ignore"/>
352     <arg line="@{jtregflags}"/>
353 jsr166 1.195 <arg line="${jtreg.flags}"/>
354 jsr166 1.135 </jtreg>
355     </sequential>
356     </macrodef>
357    
358 jsr166 1.65 <!-- ALoops classpath -->
359     <path id="loops.classpath">
360     <pathelement location="${build.loops.dir}"/>
361     </path>
362    
363 jsr166 1.100 <!-- Support @jls tag, used in jdk8+ javadoc -->
364 jsr166 1.120 <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
365 jsr166 1.100 <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
366 tim 1.28
367 tim 1.59 <!-- Main targets -->
368 tim 1.28
369 jsr166 1.151 <property name="build.main.java.version" value="9"/>
370     <property name="build.main.javac" value="${javac9}"/>
371    
372 dl 1.80 <target name="dists"
373 jsr166 1.240 depends="dist, 4jdk8dist"
374     description="Builds all public jars and docs"/>
375 dl 1.239 <!--
376     depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
377     -->
378 tim 1.11
379 tim 1.28 <target name="compile"
380 jsr166 1.100 depends="configure-compiler"
381 jsr166 1.102 description="Compiles src/main sources to build dir">
382 tim 1.27
383 jsr166 1.182 <local name="modules"/>
384     <condition property="modules">
385     <and>
386     <available file="${jdk9.home}/jmods" type="dir"/>
387     <equals arg1="9" arg2="${build.main.java.version}"/>
388     </and>
389     </condition>
390    
391     <local name="destdir"/>
392     <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
393     <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
394    
395     <mkdir dir="${destdir}"/>
396 tim 1.27
397 tim 1.60 <javac srcdir="${src.dir}"
398 jsr166 1.182 destdir="${destdir}"
399 jsr166 1.100 debug="${build.debug}"
400     debuglevel="${build.debuglevel}"
401     deprecation="${build.deprecation}"
402     classpath=""
403     includeAntRuntime="false"
404     includeJavaRuntime="false"
405 jsr166 1.219 encoding="ASCII"
406 jsr166 1.151 executable="${build.main.javac}"
407 jsr166 1.100 fork="true">
408 tim 1.1
409 jsr166 1.68 <include name="**/*.java"/>
410 jsr166 1.234 <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>
411 jsr166 1.133 <compilerarg value="-Xprefer:source"/>
412 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
413 jsr166 1.100 <compilerarg value="-Xlint:all"/>
414 jsr166 1.164 <compilerarg value="-Werror"/>
415 jsr166 1.235 <compilerarg value="-Xdoclint:all/protected,reference/private"/>
416 jsr166 1.146 <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
417 dl 1.73 <compilerarg line="${build.args}"/>
418 tim 1.1
419     </javac>
420     </target>
421    
422    
423 tim 1.28 <target name="jar"
424 tim 1.59 depends="compile"
425 jsr166 1.205 description="Builds library jar for src/main from compiled sources">
426 jsr166 1.212 <local name="subdir"/>
427     <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
428 tim 1.59 <jar destfile="${product.jar}">
429 jsr166 1.212 <fileset dir="${build.classes.dir}${subdir}"/>
430 jsr166 1.178 <manifest>
431 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
432     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
433 jsr166 1.178 </manifest>
434 tim 1.59 </jar>
435     </target>
436    
437 tim 1.1
438 tim 1.59 <target name="docs"
439 jsr166 1.102 description="Builds javadocs for src/main to dist dir">
440 tim 1.59
441 jsr166 1.127 <delete dir="${docs.dir}"/>
442     <mkdir dir="${docs.dir}"/>
443 tim 1.59
444 jsr166 1.88 <!-- the packagenames="none" hack below prevents scanning the -->
445     <!-- sourcepath for packages -->
446    
447 jsr166 1.226 <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
448     <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
449     <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
450     <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
451     <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
452 jsr166 1.127 <javadoc destdir="${docs.dir}"
453 jsr166 1.88 packagenames="none"
454 jsr166 1.152 link="${java9.api.url}"
455 jsr166 1.88 overview="${src.dir}/intro.html"
456 jsr166 1.130 access="${build.javadoc.access}"
457 jsr166 1.216 sourcepath="${src.dir}"
458 jsr166 1.100 classpath=""
459 jsr166 1.151 executable="${javadoc9}">
460 jsr166 1.119 <fileset dir="${src.dir}" defaultexcludes="yes">
461     <include name="**/*.java"/>
462     </fileset>
463 jsr166 1.152 <arg line="-Xdocrootparent ${java9.docroot.url}"/>
464 jsr166 1.146 <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
465 jsr166 1.100 <arg value="-XDignore.symbol.file=true"/>
466 jsr166 1.234 <arg value="--patch-module=java.base=${src.dir}"/>
467 jsr166 1.100 <arg value="-tag"/>
468     <arg value="${javadoc.jls.option}"/>
469 jsr166 1.220 <!-- @apiNote currently unused -->
470     <!-- <arg value="-tag"/> -->
471 jsr166 1.221 <!-- <arg value="apiNote:a:API Note:"/> -->
472 dl 1.143 <arg value="-tag"/>
473 jsr166 1.221 <arg value="implSpec:a:Implementation Requirements:"/>
474 dl 1.143 <arg value="-tag"/>
475 jsr166 1.221 <arg value="implNote:a:Implementation Note:"/>
476 jsr166 1.220 <!-- tags added in jdk9: currently unused -->
477     <!-- <arg value="-tag"/> -->
478     <!-- <arg value="revised:X"/> -->
479     <!-- <arg value="-tag"/> -->
480     <!-- <arg value="spec:X"/> -->
481 tim 1.59 </javadoc>
482     </target>
483    
484    
485 tim 1.28 <target name="dist"
486 jsr166 1.125 depends="dist-clean, dist-jar, dist-docs"
487 tim 1.16 description="Puts all distributable products in single hierarchy"/>
488 tim 1.1
489 tim 1.58
490 tim 1.42 <target name="release"
491     depends="dist"
492     description="Puts entire CVS tree, plus distribution productions, in a jar">
493    
494     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
495    
496     <jar basedir="${basedir}" destfile="${release.jar}">
497 tim 1.58 <!-- <exclude name="build/**"/> -->
498 tim 1.42 <exclude name="${release.jar}"/>
499     <exclude name="user.properties"/>
500     <exclude name="etc/notes/**"/>
501 tim 1.58 <exclude name="src/emulation/**"/>
502 tim 1.44 <exclude name="**/SyntaxTest.java"/>
503 tim 1.58 <exclude name="**/SuperfluousAbstract.java"/>
504 jsr166 1.178 <manifest>
505 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
506     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
507 jsr166 1.178 </manifest>
508 tim 1.42 </jar>
509     </target>
510 tim 1.1
511 tim 1.59
512 tim 1.11 <target name="clean"
513     description="Removes all build products">
514     <delete dir="${build.dir}"/>
515 tim 1.1 </target>
516    
517    
518 tim 1.11 <target name="dist-clean"
519     description="Removes all build and distribution products">
520 jsr166 1.148 <delete dir="${build.dir}"/>
521 tim 1.11 <delete dir="${dist.dir}"/>
522 tim 1.9 </target>
523 tim 1.10
524    
525 tim 1.28 <target name="dist-jar"
526     depends="clean, jar">
527 tim 1.11 <copy file="${product.jar}" todir="${dist.dir}"/>
528 jsr166 1.125 </target>
529 tim 1.27
530 jsr166 1.125 <target name="dist-docs"
531     depends="clean, docs">
532 jsr166 1.127 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
533 tim 1.11 </target>
534    
535 jsr166 1.174 <target name="tck"
536 jsr166 1.131 depends="jar"
537 jsr166 1.205 description="Runs tck tests for src/main directly">
538 jsr166 1.131
539     <run-tck-tests
540 jsr166 1.151 target="${build.main.java.version}"
541 jsr166 1.131 workdir="${build.dir}"
542 jsr166 1.236 classes="${product.jar}">
543     <javac-elements>
544     <compilerarg value="-Werror"/>
545     </javac-elements>
546     </run-tck-tests>
547 jsr166 1.131 </target>
548 tim 1.1
549 jsr166 1.174 <target name="tck-parallelism-1"
550 jsr166 1.208 description="Runs tck with common pool parallelism 1">
551 jsr166 1.174 <antcall target="tck">
552 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
553     </antcall>
554     </target>
555    
556 jsr166 1.174 <target name="tck-parallelism-0"
557 jsr166 1.208 description="Runs tck with common pool parallelism 0">
558 jsr166 1.174 <antcall target="tck">
559 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
560     </antcall>
561     </target>
562    
563 jsr166 1.213 <target name="tck-security-manager"
564     description="Runs tck with a security manager">
565     <antcall target="tck">
566     <param name="jsr166.useSecurityManager" value="true"/>
567     </antcall>
568     </target>
569    
570 jsr166 1.174 <target name="jtreg"
571 jsr166 1.135 depends="jar"
572 jsr166 1.205 description="Runs jtreg tests for src/main using the jtreg ant task">
573 jsr166 1.135 <run-jtreg-tests
574 jsr166 1.151 target="${build.main.java.version}"
575 jsr166 1.135 workdir="${build.dir}"
576     classes="${product.jar}"/>
577     </target>
578    
579 jsr166 1.142 <target name="test"
580 jsr166 1.208 depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
581 jsr166 1.241 description="Runs tck and jtreg tests for src/main"/>
582 jsr166 1.135
583 jsr166 1.205 <!-- <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
584 jsr166 1.168
585 jsr166 1.205 <!-- <antcall target="jtreg"> -->
586     <!-- <param name="build.main.java.version" value="8"/> -->
587     <!-- <param name="build.main.javac" value="${javac8}"/> -->
588     <!-- </antcall> -->
589 jsr166 1.168
590 jsr166 1.205 <!-- </target> -->
591 jsr166 1.168
592 jsr166 1.205 <!-- <target name="test89" -->
593     <!-- description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
594 jsr166 1.151
595 jsr166 1.205 <!-- <antcall target="clean"/> -->
596     <!-- <antcall target="test"> -->
597     <!-- <param name="build.main.java.version" value="8"/> -->
598     <!-- <param name="build.main.javac" value="${javac8}"/> -->
599     <!-- </antcall> -->
600 jsr166 1.151
601 jsr166 1.205 <!-- <antcall target="clean"/> -->
602     <!-- <antcall target="test"> -->
603     <!-- <param name="build.main.java.version" value="9"/> -->
604     <!-- <param name="build.main.javac" value="${javac9}"/> -->
605     <!-- </antcall> -->
606 jsr166 1.151
607 jsr166 1.205 <!-- </target> -->
608 jsr166 1.151
609 tim 1.18
610    
611 tim 1.32 <target name="configure-compiler">
612 jsr166 1.180 <fail message="ant version too old">
613 jsr166 1.237 <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
614 jsr166 1.180 </fail>
615 tim 1.54
616     <property name="unchecked.option" value="-Xlint:unchecked"/>
617    
618     <condition property="warnunchecked.arg" value="${unchecked.option}">
619 tim 1.57 <istrue value="${build.warnunchecked}"/>
620 tim 1.32 </condition>
621    
622 tim 1.37 <property name="warnunchecked.arg" value=""/>
623 tim 1.34
624 tim 1.32
625     <!-- Common options in javac invocations -->
626 tim 1.57 <property name="build.args" value="${warnunchecked.arg}"/>
627 tim 1.33
628     </target>
629    
630    
631 tim 1.28
632 jsr166 1.65 <!-- Various demos and test programs -->
633    
634    
635 jsr166 1.203 <!-- description="Benchmark from Doug Lea's AQS paper" -->
636     <target name="loops" depends="configure-compiler">
637 jsr166 1.65
638     <mkdir dir="${build.loops.dir}"/>
639    
640     <javac srcdir="${loops.src.dir}"
641     destdir="${build.loops.dir}"
642     debug="${build.debug}"
643     debuglevel="${build.debuglevel}"
644     deprecation="${build.deprecation}"
645     source="${build.sourcelevel}"
646 jsr166 1.191 target="${build.sourcelevel}"
647 jsr166 1.219 encoding="ASCII"
648 jsr166 1.65 fork="true">
649    
650     <compilerarg line="${build.args}"/>
651     <classpath refid="loops.classpath"/>
652 dl 1.84 <compilerarg value="-XDignore.symbol.file=true"/>
653 jsr166 1.65
654     </javac>
655    
656     <java classname="ALoops" fork="true">
657     <classpath refid="loops.classpath"/>
658     </java>
659     </target>
660    
661    
662 jsr166 1.166 <target name="compile-test-loops" depends="jar"
663 jsr166 1.241 description="Compiles all the perf tests in src/test/loops">
664 jsr166 1.166
665     <mkdir dir="${build.dir}/test/loops"/>
666    
667     <javac srcdir="${basedir}/src/test/loops"
668     destdir="${build.dir}/test/loops"
669     debug="${build.debug}"
670     debuglevel="${build.debuglevel}"
671     deprecation="${build.deprecation}"
672     includeAntRuntime="false"
673     includeJavaRuntime="false"
674 jsr166 1.219 encoding="ASCII"
675 jsr166 1.166 executable="${javac9}"
676     fork="true">
677    
678     <include name="*.java"/>
679     <compilerarg value="-XDignore.symbol.file=true"/>
680 jsr166 1.167 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
681 jsr166 1.166 <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
682     <compilerarg line="${build.args}"/>
683     </javac>
684     </target>
685    
686    
687 jsr166 1.200 <!-- jsr166 4jdk8 -->
688    
689     <target name="4jdk8compile"
690     depends="configure-compiler"
691     description="Compiles src/jdk8 sources, targeting jdk8">
692    
693     <mkdir dir="${build.4jdk8.classes.dir}"/>
694    
695     <javac srcdir="${4jdk8src.dir}"
696     destdir="${build.4jdk8.classes.dir}"
697     debug="${build.debug}"
698     debuglevel="${build.debuglevel}"
699     deprecation="${build.deprecation}"
700     source="8"
701     target="8"
702     classpath=""
703     bootclasspath="${bootclasspath8}"
704     includeAntRuntime="false"
705     includeJavaRuntime="false"
706 jsr166 1.219 encoding="ASCII"
707 jsr166 1.200 executable="${javac8}"
708     fork="true">
709     <include name="**/*.java"/>
710     <compilerarg value="-Xprefer:source"/>
711     <compilerarg value="-XDignore.symbol.file=true"/>
712     <compilerarg value="-Xlint:all"/>
713     <compilerarg value="-Werror"/>
714     <compilerarg line="${build.args}"/>
715     </javac>
716     </target>
717    
718     <target name="4jdk8doclint"
719     depends="configure-compiler"
720     description="Finds doclint warnings">
721    
722     <mkdir dir="${build.4jdk8.classes.dir}"/>
723    
724     <javac srcdir="${4jdk8src.dir}"
725     destdir="${build.4jdk8.classes.dir}"
726     debug="${build.debug}"
727     debuglevel="${build.debuglevel}"
728     deprecation="${build.deprecation}"
729     source="8"
730     target="8"
731     classpath=""
732     bootclasspath="${bootclasspath8}"
733     includeAntRuntime="false"
734     includeJavaRuntime="false"
735 jsr166 1.219 encoding="ASCII"
736 jsr166 1.200 executable="${javac8}"
737     fork="true">
738     <include name="**/*.java"/>
739     <compilerarg value="-Xprefer:source"/>
740     <compilerarg value="-XDignore.symbol.file=true"/>
741     <compilerarg value="-Xlint:all"/>
742 jsr166 1.235 <compilerarg value="-Xdoclint:all/protected,reference/private"/>
743 jsr166 1.200 <compilerarg line="${build.args}"/>
744     </javac>
745     </target>
746    
747    
748     <target name="4jdk8jar"
749     depends="4jdk8compile"
750     description="Builds library jar from compiled sources">
751    
752     <jar destfile="${4jdk8product.jar}">
753     <fileset dir="${build.4jdk8.classes.dir}"/>
754     <manifest>
755     <attribute name="Built-By" value="${user.name}"/>
756     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
757     </manifest>
758     </jar>
759     </target>
760    
761    
762     <target name="4jdk8-tck"
763     depends="4jdk8jar"
764     description="Runs tck tests for jsr166-4jdk8 directly">
765    
766     <run-tck-tests
767     target="8"
768     workdir="${build.4jdk8.dir}"
769     classes="${4jdk8product.jar}">
770     <javac-elements>
771     <!-- JDK9+ test classes -->
772     <exclude name="*9Test.java"/>
773     <exclude name="*10Test.java"/>
774 jsr166 1.236 <compilerarg value="-Werror"/>
775 jsr166 1.200 </javac-elements>
776     </run-tck-tests>
777     </target>
778    
779    
780     <target name="4jdk8-jtreg"
781     depends="4jdk8jar"
782     description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
783     <run-jtreg-tests
784     target="8"
785     workdir="${build.4jdk8.dir}"
786     classes="${4jdk8product.jar}"/>
787     </target>
788    
789    
790     <target name="4jdk8-test"
791     depends="4jdk8-tck, 4jdk8-jtreg"
792 jsr166 1.241 description="Runs tck and jtreg tests for jsr166-4jdk8"/>
793 jsr166 1.200
794    
795     <target name="4jdk8docs"
796     description="Builds javadocs for src/jdk8 to dist dir">
797    
798     <delete dir="${4jdk8docs.dir}"/>
799     <mkdir dir="${4jdk8docs.dir}"/>
800    
801     <javadoc destdir="${4jdk8docs.dir}"
802     packagenames="none"
803     link="${java8.api.url}"
804     overview="${4jdk8src.dir}/intro.html"
805     access="${build.javadoc.access}"
806     sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
807     classpath=""
808 jsr166 1.206 executable="${javadoc8}"
809     failonerror = "true">
810 jsr166 1.200 <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
811     <include name="**/*.java"/>
812     </fileset>
813     <arg line="-Xdocrootparent ${java8.docroot.url}"/>
814     <arg value="-XDignore.symbol.file=true"/>
815     <arg value="-tag"/>
816     <arg value="${javadoc.jls.option}"/>
817 jsr166 1.220 <!-- @apiNote currently unused -->
818     <!-- <arg value="-tag"/> -->
819     <!-- <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
820 jsr166 1.200 <arg value="-tag"/>
821     <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
822     <arg value="-tag"/>
823     <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
824     </javadoc>
825     </target>
826    
827    
828     <target name="4jdk8dist"
829     depends="4jdk8dist-jar, 4jdk8dist-docs"
830     description="Puts all distributable products in single hierarchy"/>
831    
832    
833     <target name="4jdk8clean"
834     description="Removes all 4jdk8 build products">
835     <delete dir="${build.4jdk8.dir}"/>
836     </target>
837    
838    
839     <target name="4jdk8dist-jar"
840     depends="4jdk8clean, 4jdk8jar">
841     <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
842     </target>
843    
844    
845     <target name="4jdk8dist-docs"
846     depends="4jdk8clean, 4jdk8docs">
847     <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
848     </target>
849    
850    
851 jsr166 1.241 <!-- jsr166 4jdk7 (no longer maintained) -->
852 jsr166 1.200
853 jsr166 1.241 <target name="4jdk7compile" depends="configure-compiler">
854 jsr166 1.99 <mkdir dir="${build.4jdk7.classes.dir}"/>
855 jsr166 1.92
856 jsr166 1.99 <javac srcdir="${4jdk7src.dir}"
857     destdir="${build.4jdk7.classes.dir}"
858 jsr166 1.92 debug="${build.debug}"
859     debuglevel="${build.debuglevel}"
860     deprecation="${build.deprecation}"
861 jsr166 1.107 source="6"
862 jsr166 1.190 target="6"
863 jsr166 1.92 classpath=""
864 jsr166 1.119 bootclasspath="${bootclasspath6}"
865 jsr166 1.92 includeAntRuntime="false"
866     includeJavaRuntime="false"
867 jsr166 1.219 encoding="ASCII"
868 jsr166 1.97 executable="${javac7}"
869 jsr166 1.92 fork="true">
870    
871     <include name="**/*.java"/>
872 jsr166 1.133 <compilerarg value="-Xprefer:source"/>
873 jsr166 1.92 <compilerarg value="-XDignore.symbol.file=true"/>
874     <compilerarg value="-Xlint:all"/>
875 jsr166 1.164 <compilerarg value="-Werror"/>
876 jsr166 1.118 <compilerarg line="${build.args}"/>
877 jsr166 1.92 </javac>
878 jsr166 1.118 </target>
879 jsr166 1.92
880 jsr166 1.241 <target name="4jdk7doclint" depends="configure-compiler">
881 jsr166 1.149 <mkdir dir="${build.4jdk7.classes.dir}"/>
882    
883     <javac srcdir="${4jdk7src.dir}"
884     destdir="${build.4jdk7.classes.dir}"
885     debug="${build.debug}"
886     debuglevel="${build.debuglevel}"
887     deprecation="${build.deprecation}"
888     source="6"
889 jsr166 1.190 target="6"
890 jsr166 1.149 classpath=""
891 jsr166 1.190 bootclasspath="${bootclasspath6}"
892 jsr166 1.149 includeAntRuntime="false"
893     includeJavaRuntime="false"
894 jsr166 1.219 encoding="ASCII"
895 jsr166 1.149 executable="${javac8}"
896     fork="true">
897    
898     <include name="**/*.java"/>
899     <compilerarg value="-Xprefer:source"/>
900     <compilerarg value="-XDignore.symbol.file=true"/>
901     <compilerarg value="-Xlint:all"/>
902     <compilerarg value="-Xdoclint:all/protected"/>
903     <compilerarg line="${build.args}"/>
904     </javac>
905     </target>
906    
907 jsr166 1.241 <target name="4jdk7jar" depends="4jdk7compile">
908 jsr166 1.116 <jar destfile="${4jdk7product.jar}">
909 jsr166 1.99 <fileset dir="${build.4jdk7.classes.dir}"/>
910 jsr166 1.178 <manifest>
911 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
912     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
913 jsr166 1.178 </manifest>
914 jsr166 1.97 </jar>
915 jsr166 1.92 </target>
916    
917 jsr166 1.241 <target name="4jdk7-tck" depends="4jdk7jar">
918 jsr166 1.97 <run-tck-tests
919 jsr166 1.116 target="7"
920     workdir="${build.4jdk7.dir}"
921 jsr166 1.132 classes="${4jdk7product.jar}">
922     <javac-elements>
923 jsr166 1.134 <!-- JDK8+ test classes -->
924 jsr166 1.137 <exclude name="*8Test.java"/>
925 jsr166 1.151 <exclude name="*9Test.java"/>
926 jsr166 1.176 <exclude name="*10Test.java"/>
927 jsr166 1.138 <exclude name="DoubleAccumulatorTest.java"/>
928     <exclude name="DoubleAdderTest.java"/>
929     <exclude name="LongAccumulatorTest.java"/>
930     <exclude name="LongAdderTest.java"/>
931 jsr166 1.137 <exclude name="CompletableFutureTest.java"/>
932 jsr166 1.145 <exclude name="SplittableRandomTest.java"/>
933 jsr166 1.132 <exclude name="StampedLockTest.java"/>
934 jsr166 1.176 <exclude name="SubmissionPublisherTest.java"/>
935 jsr166 1.236 <compilerarg value="-Werror"/>
936 jsr166 1.132 </javac-elements>
937     </run-tck-tests>
938 jsr166 1.97 </target>
939    
940 jsr166 1.203 <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
941 jsr166 1.241 <target name="4jdk7-tck-junit" depends="4jdk7compile">
942 jsr166 1.97
943     <junit printsummary="true"
944     showoutput="true"
945     errorProperty="junit.failed"
946     failureProperty="junit.failed"
947     includeantruntime="true"
948     jvm="${java7}"
949     fork="true">
950    
951 jsr166 1.99 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
952 jsr166 1.97 <jvmarg value="-server"/>
953 jsr166 1.92
954 jsr166 1.97 <classpath>
955     <pathelement location="${junit.jar}"/>
956 jsr166 1.99 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
957 jsr166 1.97 </classpath>
958 jsr166 1.92
959 jsr166 1.97 <formatter type="brief"/>
960 jsr166 1.92
961 jsr166 1.140 <test name="${jsr166.tckTestClass}" haltonfailure="no">
962 jsr166 1.97 </test>
963     </junit>
964 jsr166 1.92 </target>
965    
966 jsr166 1.241 <target name="4jdk7-jtreg" depends="4jdk7jar">
967 jsr166 1.135 <run-jtreg-tests
968     target="7"
969     workdir="${build.4jdk7.dir}"
970 jsr166 1.165 classes="${4jdk7product.jar}"/>
971 jsr166 1.115 </target>
972    
973 jsr166 1.241 <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
974 jsr166 1.115
975 jsr166 1.241 <target name="4jdk7docs">
976 jsr166 1.127 <delete dir="${4jdk7docs.dir}"/>
977     <mkdir dir="${4jdk7docs.dir}"/>
978 jsr166 1.92
979 jsr166 1.127 <javadoc destdir="${4jdk7docs.dir}"
980 jsr166 1.92 packagenames="none"
981 jsr166 1.152 link="${java7.api.url}"
982 jsr166 1.99 overview="${4jdk7src.dir}/intro.html"
983 jsr166 1.130 access="${build.javadoc.access}"
984 jsr166 1.199 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
985 jsr166 1.92 classpath=""
986 jsr166 1.206 executable="${javadoc7}"
987     failonerror = "true">
988 jsr166 1.99 <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
989 jsr166 1.92 <include name="**/*.java"/>
990     </fileset>
991 jsr166 1.152 <arg line="-Xdocrootparent ${java7.docroot.url}"/>
992 jsr166 1.119 <arg value="-XDignore.symbol.file=true"/>
993 jsr166 1.92 </javadoc>
994     </target>
995    
996 jsr166 1.241 <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
997 jsr166 1.92
998 jsr166 1.241 <target name="4jdk7clean">
999 jsr166 1.99 <delete dir="${build.4jdk7.dir}"/>
1000 jsr166 1.92 </target>
1001    
1002 jsr166 1.241 <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
1003 jsr166 1.125 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1004     </target>
1005 jsr166 1.92
1006 jsr166 1.241 <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
1007 jsr166 1.127 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1008 jsr166 1.92 </target>
1009    
1010 jsr166 1.109
1011 jsr166 1.241 <!-- jsr166x (no longer maintained) -->
1012 dl 1.70
1013 jsr166 1.241 <target name="jsr166xcompile" depends="configure-compiler">
1014 jsr166 1.114 <mkdir dir="${build.jsr166x.classes.dir}"/>
1015 dl 1.70
1016 jsr166 1.105 <javac srcdir="${topsrc.dir}"
1017 jsr166 1.114 destdir="${build.jsr166x.classes.dir}"
1018 jsr166 1.105 debug="${build.debug}"
1019     debuglevel="${build.debuglevel}"
1020     deprecation="${build.deprecation}"
1021     classpath=""
1022 jsr166 1.119 bootclasspath="${bootclasspath6}"
1023 jsr166 1.107 source="5"
1024 jsr166 1.190 target="5"
1025 jsr166 1.105 includeAntRuntime="false"
1026     includeJavaRuntime="false"
1027 jsr166 1.219 encoding="ASCII"
1028 jsr166 1.105 executable="${javac7}"
1029     fork="true">
1030     <include name="jsr166x/**/*.java"/>
1031 dl 1.84 <compilerarg value="-XDignore.symbol.file=true"/>
1032 jsr166 1.105 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1033 jsr166 1.164 <compilerarg value="-Werror"/>
1034 jsr166 1.118 <compilerarg line="${build.args}"/>
1035 dl 1.70 </javac>
1036     </target>
1037    
1038 jsr166 1.241 <target name="jsr166xjar" depends="jsr166xcompile">
1039 jsr166 1.106 <jar destfile="${jsr166x.jar}">
1040 jsr166 1.114 <fileset dir="${build.jsr166x.classes.dir}"/>
1041 jsr166 1.178 <manifest>
1042 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
1043     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1044 jsr166 1.178 </manifest>
1045 dl 1.70 </jar>
1046     </target>
1047    
1048 jsr166 1.241 <target name="jsr166xdocs">
1049 jsr166 1.127 <delete dir="${jsr166xdocs.dir}"/>
1050     <mkdir dir="${jsr166xdocs.dir}"/>
1051 dl 1.70
1052 jsr166 1.127 <javadoc destdir="${jsr166xdocs.dir}"
1053 jsr166 1.107 packagenames="jsr166x.*"
1054 jsr166 1.152 link="${java.api.url}"
1055 jsr166 1.130 access="${build.javadoc.access}"
1056 jsr166 1.199 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1057 jsr166 1.119 bootclasspath="${bootclasspath6}"
1058 jsr166 1.107 source="5"
1059 jsr166 1.206 executable="${javadoc7}"
1060     failonerror = "true">
1061 jsr166 1.152 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1062 jsr166 1.118 <arg value="-XDignore.symbol.file=true"/>
1063     </javadoc>
1064 dl 1.70 </target>
1065    
1066 jsr166 1.241 <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1067 dl 1.70
1068 jsr166 1.241 <target name="jsr166xclean">
1069 dl 1.70 <delete dir="${build.jsr166x.dir}"/>
1070     </target>
1071    
1072 jsr166 1.241 <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
1073 jsr166 1.106 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1074 jsr166 1.125 </target>
1075 dl 1.70
1076 jsr166 1.241 <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
1077 jsr166 1.127 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1078 dl 1.70 </target>
1079    
1080 dl 1.74
1081 jsr166 1.241 <!-- jsr166y (no longer maintained) -->
1082 dl 1.74
1083 jsr166 1.241 <target name="jsr166ycompile" depends="configure-compiler">
1084 jsr166 1.114 <mkdir dir="${build.jsr166y.classes.dir}"/>
1085 dl 1.74
1086 jsr166 1.103 <javac srcdir="${topsrc.dir}"
1087 jsr166 1.114 destdir="${build.jsr166y.classes.dir}"
1088 jsr166 1.103 debug="${build.debug}"
1089     debuglevel="${build.debuglevel}"
1090     deprecation="${build.deprecation}"
1091 jsr166 1.107 source="6"
1092 jsr166 1.189 target="6"
1093 jsr166 1.103 classpath=""
1094 jsr166 1.119 bootclasspath="${bootclasspath6}"
1095 jsr166 1.103 includeAntRuntime="false"
1096     includeJavaRuntime="false"
1097 jsr166 1.219 encoding="ASCII"
1098 jsr166 1.103 executable="${javac7}"
1099     fork="true">
1100 dl 1.74
1101 jsr166 1.103 <include name="jsr166y/**/*.java"/>
1102 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
1103 jsr166 1.103 <compilerarg value="-Xlint:all"/>
1104 jsr166 1.164 <compilerarg value="-Werror"/>
1105 jsr166 1.118 <compilerarg line="${build.args}"/>
1106 dl 1.74 </javac>
1107     </target>
1108    
1109 jsr166 1.241 <target name="jsr166yjar" depends="jsr166ycompile">
1110 jsr166 1.106 <jar destfile="${jsr166y.jar}" index="true">
1111 jsr166 1.114 <fileset dir="${build.jsr166y.classes.dir}"/>
1112 jsr166 1.178 <manifest>
1113 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
1114     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1115 jsr166 1.178 </manifest>
1116 dl 1.74 </jar>
1117     </target>
1118    
1119 jsr166 1.241 <target name="jsr166ydocs">
1120 jsr166 1.127 <delete dir="${jsr166ydocs.dir}"/>
1121     <mkdir dir="${jsr166ydocs.dir}"/>
1122 dl 1.74
1123 jsr166 1.127 <javadoc destdir="${jsr166ydocs.dir}"
1124 jsr166 1.107 packagenames="jsr166y.*"
1125 jsr166 1.152 link="${java.api.url}"
1126 jsr166 1.130 access="${build.javadoc.access}"
1127 jsr166 1.199 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1128 jsr166 1.119 bootclasspath="${bootclasspath6}"
1129 jsr166 1.107 source="6"
1130 jsr166 1.206 executable="${javadoc7}"
1131     failonerror = "true">
1132 jsr166 1.152 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1133 jsr166 1.118 <arg value="-XDignore.symbol.file=true"/>
1134     </javadoc>
1135 dl 1.74 </target>
1136    
1137 jsr166 1.241 <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1138 dl 1.74
1139 jsr166 1.241 <target name="jsr166yclean">
1140 dl 1.74 <delete dir="${build.jsr166y.dir}"/>
1141     </target>
1142    
1143 jsr166 1.241 <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
1144 jsr166 1.106 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1145 jsr166 1.125 </target>
1146 dl 1.74
1147 jsr166 1.241 <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
1148 jsr166 1.127 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1149 dl 1.74 </target>
1150    
1151 dl 1.90
1152 jsr166 1.241 <!-- extra166y (no longer maintained) -->
1153 dl 1.76
1154 jsr166 1.241 <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1155 jsr166 1.114 <mkdir dir="${build.extra166y.classes.dir}"/>
1156 dl 1.76
1157 jsr166 1.103 <javac srcdir="${topsrc.dir}"
1158 jsr166 1.114 destdir="${build.extra166y.classes.dir}"
1159 jsr166 1.103 debug="${build.debug}"
1160     debuglevel="${build.debuglevel}"
1161     deprecation="${build.deprecation}"
1162 jsr166 1.119 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1163 jsr166 1.105 classpath=""
1164 jsr166 1.107 source="6"
1165 jsr166 1.190 target="6"
1166 jsr166 1.103 includeAntRuntime="false"
1167     includeJavaRuntime="false"
1168 jsr166 1.219 encoding="ASCII"
1169 jsr166 1.103 executable="${javac7}"
1170     fork="true">
1171 dl 1.76
1172 jsr166 1.103 <include name="extra166y/**/*.java"/>
1173 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
1174 jsr166 1.103 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1175 jsr166 1.164 <compilerarg value="-Werror"/>
1176 jsr166 1.118 <compilerarg line="${build.args}"/>
1177 dl 1.76 </javac>
1178     </target>
1179    
1180 jsr166 1.241 <target name="extra166yjar" depends="extra166ycompile">
1181 jsr166 1.106 <jar destfile="${extra166y.jar}" index="true">
1182 jsr166 1.114 <fileset dir="${build.extra166y.classes.dir}"/>
1183 jsr166 1.178 <manifest>
1184 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
1185     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1186 jsr166 1.178 </manifest>
1187 dl 1.76 </jar>
1188     </target>
1189    
1190 jsr166 1.241 <target name="extra166ydocs">
1191 jsr166 1.127 <delete dir="${extra166ydocs.dir}"/>
1192     <mkdir dir="${extra166ydocs.dir}"/>
1193 dl 1.76
1194 jsr166 1.127 <javadoc destdir="${extra166ydocs.dir}"
1195 jsr166 1.107 packagenames="extra166y.*"
1196 jsr166 1.152 link="${java.api.url}"
1197 jsr166 1.130 access="${build.javadoc.access}"
1198 jsr166 1.199 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1199 jsr166 1.119 bootclasspath="${bootclasspath6}"
1200 jsr166 1.107 source="6"
1201 jsr166 1.118 executable="${javadoc7}">
1202 jsr166 1.152 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1203 jsr166 1.118 <arg value="-XDignore.symbol.file=true"/>
1204     </javadoc>
1205 dl 1.76 </target>
1206    
1207 jsr166 1.241 <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1208 dl 1.76
1209 jsr166 1.241 <target name="extra166yclean">
1210 dl 1.76 <delete dir="${build.extra166y.dir}"/>
1211     </target>
1212    
1213 jsr166 1.241 <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
1214 jsr166 1.106 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1215 jsr166 1.125 </target>
1216 dl 1.76
1217 jsr166 1.241 <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
1218 jsr166 1.127 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1219 dl 1.76 </target>
1220    
1221 jsr166 1.241
1222     <!-- jsr166e (no longer maintained) -->
1223 dl 1.90
1224 jsr166 1.144 <property name="build.jsr166e.java.version" value="6"/>
1225     <property name="build.jsr166e.javac" value="${javac6}"/>
1226    
1227 jsr166 1.241 <target name="jsr166ecompile" depends="configure-compiler">
1228 jsr166 1.114 <mkdir dir="${build.jsr166e.classes.dir}"/>
1229 dl 1.90
1230 jsr166 1.95 <javac srcdir="${topsrc.dir}"
1231 jsr166 1.114 destdir="${build.jsr166e.classes.dir}"
1232 jsr166 1.94 debug="${build.debug}"
1233     debuglevel="${build.debuglevel}"
1234     deprecation="${build.deprecation}"
1235 jsr166 1.144 source="${build.jsr166e.java.version}"
1236 jsr166 1.190 target="${build.jsr166e.java.version}"
1237 jsr166 1.94 classpath=""
1238     includeAntRuntime="false"
1239     includeJavaRuntime="false"
1240 jsr166 1.144 executable="${build.jsr166e.javac}"
1241 jsr166 1.94 fork="true">
1242 dl 1.90
1243 jsr166 1.95 <include name="jsr166e/**/*.java"/>
1244 dl 1.90 <compilerarg value="-XDignore.symbol.file=true"/>
1245 jsr166 1.94 <compilerarg value="-Xlint:all"/>
1246 jsr166 1.164 <compilerarg value="-Werror"/>
1247 jsr166 1.118 <compilerarg line="${build.args}"/>
1248 dl 1.90 </javac>
1249     </target>
1250    
1251 jsr166 1.150 <target name="jsr166edoclint">
1252     <mkdir dir="${build.jsr166e.classes.dir}"/>
1253    
1254     <javac srcdir="${topsrc.dir}"
1255     destdir="${build.jsr166e.classes.dir}"
1256     debug="${build.debug}"
1257     debuglevel="${build.debuglevel}"
1258     deprecation="${build.deprecation}"
1259     source="${build.jsr166e.java.version}"
1260 jsr166 1.190 target="${build.jsr166e.java.version}"
1261 jsr166 1.150 classpath=""
1262 jsr166 1.190 bootclasspath="${bootclasspath6}"
1263 jsr166 1.150 includeAntRuntime="false"
1264     includeJavaRuntime="false"
1265     executable="${javac8}"
1266     fork="true">
1267    
1268     <include name="jsr166e/**/*.java"/>
1269     <compilerarg value="-XDignore.symbol.file=true"/>
1270     <compilerarg value="-Xlint:all"/>
1271 jsr166 1.164 <compilerarg value="-Werror"/>
1272 jsr166 1.150 <compilerarg value="-Xdoclint:all/protected"/>
1273     </javac>
1274     </target>
1275    
1276 jsr166 1.241 <target name="jsr166ejar" depends="jsr166ecompile">
1277 jsr166 1.106 <jar destfile="${jsr166e.jar}" index="true">
1278 jsr166 1.114 <fileset dir="${build.jsr166e.classes.dir}"/>
1279 jsr166 1.178 <manifest>
1280 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
1281     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1282 jsr166 1.178 </manifest>
1283 dl 1.90 </jar>
1284     </target>
1285    
1286 jsr166 1.241 <target name="jsr166edocs">
1287 jsr166 1.127 <delete dir="${jsr166edocs.dir}"/>
1288     <mkdir dir="${jsr166edocs.dir}"/>
1289 dl 1.90
1290 jsr166 1.127 <javadoc destdir="${jsr166edocs.dir}"
1291 jsr166 1.107 packagenames="jsr166e.*"
1292 jsr166 1.152 link="${java.api.url}"
1293 jsr166 1.130 access="${build.javadoc.access}"
1294 jsr166 1.199 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1295 jsr166 1.144 source="${build.jsr166e.java.version}"
1296 jsr166 1.206 executable="${javadoc7}"
1297     failonerror = "true">
1298 jsr166 1.152 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1299 jsr166 1.118 <arg value="-XDignore.symbol.file=true"/>
1300 jsr166 1.96 </javadoc>
1301 dl 1.90 </target>
1302    
1303 jsr166 1.241 <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
1304 jsr166 1.144 <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1305 jsr166 1.122 <run-tck-tests
1306     tck.src.dir="${test.src.dir}/tck-jsr166e"
1307 jsr166 1.144 target="${build.jsr166e.java.version}"
1308 jsr166 1.122 workdir="${build.jsr166e.dir}"
1309     classes="${jsr166e.jar}"/>
1310     </target>
1311    
1312 jsr166 1.241 <target name="jsr166e-tck">
1313 jsr166 1.144
1314     <!-- <antcall target="clean"/> -->
1315 jsr166 1.174 <!-- <antcall target="jsr166e-tck-one-java-version"> -->
1316 jsr166 1.144 <!-- <param name="build.jsr166e.java.version" value="8"/> -->
1317     <!-- <param name="build.jsr166e.javac" value="${javac8}"/> -->
1318     <!-- </antcall> -->
1319    
1320     <antcall target="clean"/>
1321 jsr166 1.174 <antcall target="jsr166e-tck-one-java-version">
1322 jsr166 1.144 <param name="build.jsr166e.java.version" value="7"/>
1323     <param name="build.jsr166e.javac" value="${javac7}"/>
1324     </antcall>
1325    
1326     <antcall target="clean"/>
1327 jsr166 1.174 <antcall target="jsr166e-tck-one-java-version">
1328 jsr166 1.144 <param name="build.jsr166e.java.version" value="6"/>
1329     <param name="build.jsr166e.javac" value="${javac6}"/>
1330     </antcall>
1331     </target>
1332    
1333 jsr166 1.241 <target name="jsr166e-test" depends="jsr166e-tck"/>
1334 jsr166 1.122
1335 jsr166 1.241 <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
1336 jsr166 1.147
1337 jsr166 1.241 <target name="jsr166eclean">
1338 dl 1.90 <delete dir="${build.jsr166e.dir}"/>
1339     </target>
1340    
1341     <target name="jsr166edist-jar"
1342 jsr166 1.128 depends="jsr166eclean, jsr166ejar">
1343 jsr166 1.106 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1344 jsr166 1.125 </target>
1345 dl 1.90
1346 jsr166 1.241 <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
1347 jsr166 1.127 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1348 dl 1.90 </target>
1349    
1350 jsr166 1.130
1351     <!-- Find buglets that can be detected by static build tools -->
1352    
1353     <target name="lint">
1354     <antcall target="dists">
1355 jsr166 1.161 <param name="build.javadoc.access" value="public"/>
1356     </antcall>
1357     </target>
1358    
1359     <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1360     <target name="lint-private">
1361     <antcall target="dist">
1362 jsr166 1.130 <param name="build.javadoc.access" value="private"/>
1363     </antcall>
1364     </target>
1365    
1366 jsr166 1.236
1367     <!-- ==============================================================
1368     Experimental errorprone support - http://errorprone.info
1369     You may need to bring your own errorprone jar.
1370     =================================================================== -->
1371     <target name="errorprone"
1372     depends="clean, configure-compiler"
1373 jsr166 1.241 description="Run errorprone over jsr166 source code (experimental)">
1374 jsr166 1.236
1375     <local name="destdir"/>
1376     <property name="destdir" value="${build.classes.dir}/java.base"/>
1377     <mkdir dir="${destdir}"/>
1378    
1379     <javac srcdir="${src.dir}"
1380     destdir="${destdir}"
1381     debug="${build.debug}"
1382     debuglevel="${build.debuglevel}"
1383     deprecation="${build.deprecation}"
1384     classpath=""
1385     includeAntRuntime="false"
1386     includeJavaRuntime="false"
1387     encoding="ASCII"
1388     executable="${build.main.javac}"
1389     fork="true">
1390    
1391     <include name="**/*.java"/>
1392     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1393     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1394     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1395     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1396     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1397     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1398     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1399     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1400     <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1401     <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1402     <compilerarg value="-Xplugin:ErrorProne
1403 jsr166 1.241 -Xep:IdentityBinaryExpression:WARN
1404 jsr166 1.236 -Xep:MissingOverride:OFF
1405 jsr166 1.241 -Xep:MixedArrayDimensions:WARN
1406     -Xep:RemoveUnusedImports:ERROR
1407 jsr166 1.242 -Xep:ClassName:ERROR
1408     -Xep:MultipleTopLevelClasses:ERROR
1409     -Xep:EmptyIf:ERROR
1410     -Xep:LongLiteralLowerCaseSuffix:ERROR
1411     -Xep:ArgumentParameterSwap:ERROR
1412     -Xep:RedundantThrows:ERROR
1413 jsr166 1.236 -Xep:MethodCanBeStatic:WARN"/>
1414     <compilerarg value="--patch-module=java.base=${src.dir}"/>
1415     <compilerarg value="-Xprefer:source"/>
1416     <compilerarg value="-XDignore.symbol.file=true"/>
1417     <compilerarg value="-Xlint:all"/>
1418     <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1419     <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1420     <compilerarg line="${build.args}"/>
1421     </javac>
1422    
1423     <jar destfile="${product.jar}">
1424     <fileset dir="${destdir}"/>
1425     </jar>
1426    
1427     <run-tck-tests
1428     target="${build.main.java.version}"
1429     workdir="${build.dir}"
1430     classes="${product.jar}">
1431     <javac-elements>
1432     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1433     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1434     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1435     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1436     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1437     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1438     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1439     <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1440     <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1441     <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1442 jsr166 1.241 <compilerarg value="-Xplugin:ErrorProne
1443     -Xep:IdentityBinaryExpression:WARN
1444     -Xep:BoxedPrimitiveConstructor:OFF
1445     -Xep:HashtableContains:OFF
1446     -Xep:ModifyingCollectionWithItself:OFF
1447     -Xep:MissingOverride:OFF
1448     -Xep:MixedArrayDimensions:WARN
1449     -Xep:RemoveUnusedImports:ERROR
1450 jsr166 1.242 -Xep:ClassName:ERROR
1451     -Xep:MultipleTopLevelClasses:ERROR
1452     -Xep:EmptyIf:ERROR
1453     -Xep:LongLiteralLowerCaseSuffix:ERROR
1454     -Xep:ArgumentParameterSwap:ERROR
1455     -Xep:RedundantThrows:ERROR
1456 jsr166 1.236 -Xep:MethodCanBeStatic:WARN"/>
1457     <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1458     </javac-elements>
1459     </run-tck-tests>
1460     </target>
1461    
1462    
1463 jsr166 1.229 <!-- ==============================================================
1464     Running guava tests against jsr166 code
1465     =================================================================== -->
1466    
1467     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1468 jsr166 1.230 <!-- organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1469     <!-- <property name="guava.version" value="21.0"/> -->
1470 jsr166 1.229
1471     <!-- HOWTO debug print a path id -->
1472     <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1473     <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1474    
1475     <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1476     <!-- organisation="com.google.guava" module="guava-tests"/> -->
1477     <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1478     <!-- dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1479     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1480     <!-- organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1481    
1482     <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1483     <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1484     <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1485     <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1486    
1487     <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1488     <!-- type="*" inline="true" conf="*(private),*(public)" -->
1489     <!-- pattern="${guava.dir}/[artifact].[ext]" -->
1490     <!-- organisation="com.google.guava" module="guava-testlib"/> -->
1491    
1492     <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1493     <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1494     <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1495    
1496     <target name="init-ivy">
1497     <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1498     dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1499     <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1500     classpath="${build.dir}/ivy.jar"/>
1501     </target>
1502    
1503     <target name="guava-tests" depends="jar, init-ivy"
1504     description="Guava tests run against jsr166 collections">
1505     <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1506     <mkdir dir="${guava.dir}"/>
1507     <ivy:retrieve pathid="guava.testlib.classpath"
1508     type="jar,bundle" inline="true" conf="default,master"
1509     pattern="${guava.dir}/[artifact].[ext]"
1510     organisation="com.google.guava" module="guava-testlib"/>
1511 jsr166 1.230 <property name="guava.version" value="21.0"/>
1512 jsr166 1.229 <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1513     dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1514     <junit printsummary="true" showoutput="true" haltonfailure="true"
1515     jvm="${java9}" fork="true">
1516     <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1517     <formatter type="brief"/>
1518     <classpath>
1519     <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1520     <path refid="guava.testlib.classpath"/>
1521     </classpath>
1522    
1523     <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1524     <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1525     </junit>
1526     </target>
1527 jsr166 1.130
1528 tim 1.1 </project>