ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.229
Committed: Tue Dec 20 04:18:46 2016 UTC (7 years, 4 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.228: +66 -1 lines
Log Message:
add guava-tests target

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