ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.254
Committed: Mon Sep 25 22:54:09 2017 UTC (6 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.253: +3 -2 lines
Log Message:
make errorprone jar configurable by system property

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