ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.255
Committed: Thu Sep 28 01:17:47 2017 UTC (6 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.254: +35 -1 lines
Log Message:
Add errorprone-jtreg target

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