ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.238
Committed: Fri Mar 24 16:33:02 2017 UTC (7 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.237: +6 -1 lines
Log Message:
keep 4jdk7-tck alive a little longer

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