ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.243
Committed: Sat May 13 20:16:55 2017 UTC (6 years, 11 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.242: +3 -1 lines
Log Message:
switch to html5 docs for jdk9+

File Contents

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