ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.244
Committed: Wed May 17 00:17:49 2017 UTC (6 years, 11 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.243: +2 -0 lines
Log Message:
specify source level for javadoc targets

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