ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.241
Committed: Mon Mar 27 02:11:26 2017 UTC (7 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.240: +64 -224 lines
Log Message:
remove pre-jdk8 targets from output of ant -projecthelp

File Contents

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