ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.245
Committed: Fri Jun 16 20:50:16 2017 UTC (6 years, 10 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.244: +0 -1 lines
Log Message:
run-jtreg-tests: remove unused @source attribute

File Contents

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