ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.250
Committed: Thu Sep 14 14:23:02 2017 UTC (6 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.249: +2 -2 lines
Log Message:
use consistent syntax for --patch-module

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