ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.165
Committed: Wed Jun 17 01:55:44 2015 UTC (8 years, 10 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.164: +29 -3 lines
Log Message:
refactor jtreg test set selection

File Contents

# Content
1 <project name="jsr166" default="usage">
2
3 <description>
4 ------------------------------------------------------------------------------
5 Build file for JSR-166
6
7 Usage: ant [target]
8
9 User-specific settings are read from user.properties.
10 See user.properties.sample for an explanation of some useful settings.
11
12 The repository contains all dependencies except for ant and the JDK
13 itself. Because the JDK version matters and because different
14 targets require different JDKs, we assume that users have created a
15 hierarchy containing:
16 $HOME/jdk/jdk6
17 $HOME/jdk/jdk7
18 $HOME/jdk/jdk8
19 $HOME/jdk/jdk9
20 where each of the above is a JDK or a symlink to same, and
21 $HOME/jdk/src/jdk6
22 $HOME/jdk/src/jdk7
23 $HOME/jdk/src/jdk8
24 $HOME/jdk/src/jdk9
25 where each of the above is a complete JDK source tree
26 (e.g. mercurial forest) or a symlink to same.
27
28 Alternatively, define ant variables thus:
29 ant -Djdk$N.home=...
30 for $N in 6 7 8 9 ...
31 ------------------------------------------------------------------------------
32 </description>
33
34 <!-- Display main targets by running 'ant -projecthelp' -->
35 <target name="usage">
36 <java classname="org.apache.tools.ant.Main">
37 <arg value="-projecthelp" />
38 </java>
39 </target>
40
41
42 <!-- User-specific settings -->
43 <property file="user.properties"/>
44
45
46 <!-- Compilation options -->
47 <property name="build.sourcelevel" value="6"/>
48 <property name="build.debug" value="true"/>
49 <property name="build.debuglevel" value="source,lines,vars"/>
50 <property name="build.deprecation" value="false"/>
51 <property name="build.javadoc.access" value="protected"/>
52
53 <!-- Tck options; see JSR166TestCase.java
54 To profile a single tck test class:
55 ant -Djsr166.profileTests=true -Djsr166.profileThreshold=100 -Djsr166.tckTestClass=CompletableFutureTest test-tck
56 To stress test a single tck test class:
57 ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 test-tck
58 -->
59 <property name="jsr166.profileTests" value="false"/>
60 <property name="jsr166.profileThreshold" value="100"/>
61 <property name="jsr166.runsPerTest" value="1"/>
62 <property name="jsr166.tckTestClass" value="JSR166TestCase"/>
63
64 <!-- Build locations -->
65 <property name="build.dir" location="build"/>
66 <property name="build.classes.dir" location="${build.dir}/classes"/>
67 <property name="build.testcases.dir" location="${build.dir}/testcases"/>
68 <property name="build.loops.dir" location="${build.dir}/loops"/>
69 <property name="build.reports.dir" location="${build.dir}/reports"/>
70
71 <property name="build.4jdk7.dir" location="${build.dir}/jsr166-4jdk7"/>
72 <property name="build.4jdk7.classes.dir" location="${build.4jdk7.dir}/classes"/>
73 <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
74 <property name="build.4jdk7.docs.dir" location="${build.4jdk7.dir}/docs"/>
75
76 <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/>
77 <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/>
78 <property name="build.jsr166e.dir" location="${build.dir}/jsr166e"/>
79 <property name="build.extra166y.dir" location="${build.dir}/extra166y"/>
80
81 <property name="build.jsr166x.classes.dir" location="${build.jsr166x.dir}/classes"/>
82 <property name="build.jsr166y.classes.dir" location="${build.jsr166y.dir}/classes"/>
83 <property name="build.jsr166e.classes.dir" location="${build.jsr166e.dir}/classes"/>
84 <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
85
86 <!-- JDK locations -->
87 <property name="jdks.home" location="${user.home}/jdk"/>
88
89 <macrodef name="defjdklocations">
90 <attribute name="v"/>
91 <sequential>
92 <property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/>
93 <property name="java@{v}" location="${jdk@{v}.home}/bin/java"/>
94 <property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/>
95 <property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/>
96 <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
97 <local name="boot.jar.dir"/>
98 <property name="boot.jar.dir" location="${jdk@{v}.home}/jre/lib"/>
99 <path id="bootclasspath@{v}">
100 <pathelement path="${boot.jar.dir}/resources.jar"/>
101 <pathelement path="${boot.jar.dir}/rt.jar"/>
102 <pathelement path="${boot.jar.dir}/jsse.jar"/>
103 <pathelement path="${boot.jar.dir}/jce.jar"/>
104 <pathelement path="${boot.jar.dir}/charsets.jar"/>
105 </path>
106 <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>
107 </sequential>
108 </macrodef>
109
110 <macrodef name="mirror-dir">
111 <attribute name="src"/>
112 <attribute name="dst"/>
113 <sequential>
114 <delete dir="@{dst}"/>
115 <mkdir dir="@{dst}"/>
116 <copy todir="@{dst}" preservelastmodified="true">
117 <fileset dir="@{src}"/>
118 </copy>
119 </sequential>
120 </macrodef>
121
122 <defjdklocations v="6"/>
123 <defjdklocations v="7"/>
124 <defjdklocations v="8"/>
125 <defjdklocations v="9"/>
126
127 <!-- Source locations -->
128 <property name="src.dir" location="${basedir}/src/main"/>
129 <property name="test.src.dir" location="${basedir}/src/test"/>
130 <property name="loops.src.dir" location="${basedir}/src/loops"/>
131 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
132 <property name="jtreg.src.dir" location="${test.src.dir}/jtreg"/>
133 <property name="lib.dir" location="${basedir}/lib"/>
134 <property name="dist.dir" location="${basedir}/dist"/>
135 <property name="topsrc.dir" location="${basedir}/src"/>
136 <property name="4jdk7src.dir" location="${topsrc.dir}/jdk7"/>
137 <property name="jsr166xsrc.dir" location="${topsrc.dir}/jsr166x"/>
138 <property name="jsr166ysrc.dir" location="${topsrc.dir}/jsr166y"/>
139 <property name="jsr166esrc.dir" location="${topsrc.dir}/jsr166e"/>
140 <property name="extra166ysrc.dir" location="${topsrc.dir}/extra166y"/>
141
142 <!-- Javadoc locations -->
143 <property name="docs.dir" location="${build.dir}/docs"/>
144 <property name="4jdk7docs.dir" location="${build.4jdk7.dir}/docs"/>
145 <property name="jsr166xdocs.dir" location="${build.jsr166x.dir}/docs"/>
146 <property name="jsr166ydocs.dir" location="${build.jsr166y.dir}/docs"/>
147 <property name="jsr166edocs.dir" location="${build.jsr166e.dir}/docs"/>
148 <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
149
150 <property name="dist.docs.dir" location="${dist.dir}/docs"/>
151 <property name="dist.4jdk7docs.dir" location="${dist.dir}/jsr166-4jdk7docs"/>
152 <property name="dist.jsr166xdocs.dir" location="${dist.dir}/jsr166xdocs"/>
153 <property name="dist.jsr166ydocs.dir" location="${dist.dir}/jsr166ydocs"/>
154 <property name="dist.jsr166edocs.dir" location="${dist.dir}/jsr166edocs"/>
155 <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
156
157 <!-- Jar locations -->
158 <property name="product.jar" location="${build.dir}/jsr166.jar"/>
159 <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
160 <property name="jsr166x.jar" location="${build.jsr166x.dir}/jsr166x.jar"/>
161 <property name="jsr166y.jar" location="${build.jsr166y.dir}/jsr166y.jar"/>
162 <property name="jsr166e.jar" location="${build.jsr166e.dir}/jsr166e.jar"/>
163 <property name="extra166y.jar" location="${build.extra166y.dir}/extra166y.jar"/>
164 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
165
166 <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
167 <property name="java5.docroot.url" value="http://docs.oracle.com/javase/1.5.0/docs"/>
168 <property name="java6.docroot.url" value="http://docs.oracle.com/javase/6/docs"/>
169 <property name="java7.docroot.url" value="http://docs.oracle.com/javase/7/docs"/>
170 <property name="java8.docroot.url" value="http://docs.oracle.com/javase/8/docs"/>
171 <!-- The expected canonical location does not yet exist as of 2014-07 -->
172 <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
173 <property name="java9.docroot.url" value="http://download.java.net/jdk9/docs"/>
174 <!-- Default jdk doc location (latest stable release seems best) -->
175 <property name="java.docroot.url" value="${java8.docroot.url}"/>
176
177 <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
178 <property name="java5.api.url" value="${java5.docroot.url}/api/"/>
179 <property name="java6.api.url" value="${java6.docroot.url}/api/"/>
180 <property name="java7.api.url" value="${java7.docroot.url}/api/"/>
181 <property name="java8.api.url" value="${java8.docroot.url}/api/"/>
182 <property name="java9.api.url" value="${java9.docroot.url}/api/"/>
183 <property name="java.api.url" value="${java.docroot.url}/api/"/>
184
185 <!-- Define the "jtreg" task -->
186 <!-- See the docs in "jtreg -onlineHelp" -->
187 <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
188 classpath="${lib.dir}/jtreg.jar" />
189
190 <!-- Test classpath -->
191 <path id="test.classpath">
192 <pathelement location="${build.testcases.dir}"/>
193 <pathelement location="${junit.jar}"/>
194 </path>
195
196 <macrodef name="run-tck-tests">
197 <attribute name="tck.src.dir" default="${tck.src.dir}"/>
198 <attribute name="target"/>
199 <attribute name="compile-target" default="@{target}"/>
200 <attribute name="workdir"/>
201 <attribute name="classes"/>
202 <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
203 <element name="javac-elements" optional="true"/>
204 <sequential>
205
206 <mkdir dir="@{workdir}/tck-classes"/>
207
208 <javac srcdir="@{tck.src.dir}"
209 destdir="@{workdir}/tck-classes"
210 debug="${build.debug}"
211 debuglevel="${build.debuglevel}"
212 deprecation="${build.deprecation}"
213 source="@{compile-target}"
214 target="@{compile-target}"
215 classpath="${junit.jar}"
216 includeAntRuntime="false"
217 includeJavaRuntime="false"
218 executable="${javac@{compile-target}}"
219 fork="true">
220
221 <include name="*.java"/>
222 <compilerarg value="-XDignore.symbol.file=true"/>
223 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
224 <compilerarg value="-Xbootclasspath/p:@{classes}"/>
225 <compilerarg line="${build.args}"/>
226 <javac-elements/>
227
228 </javac>
229
230 <java classname="${jsr166.tckTestClass}"
231 failonerror="true"
232 jvm="${java@{target}}"
233 fork="true">
234 <jvmarg value="-Xbootclasspath/p:@{classes}"/>
235 <jvmarg line="@{jvmflags}"/>
236
237 <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 test-tck -->
238 <syspropertyset id="java.util.concurrent.ForkJoinPool-properties">
239 <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
240 </syspropertyset>
241
242 <sysproperty key="jsr166.profileTests" value="${jsr166.profileTests}"/>
243 <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>
244 <sysproperty key="jsr166.runsPerTest" value="${jsr166.runsPerTest}"/>
245 <classpath>
246 <pathelement location="${junit.jar}"/>
247 <pathelement location="@{workdir}/tck-classes"/>
248 </classpath>
249 </java>
250
251 </sequential>
252 </macrodef>
253
254 <!-- Define jtreg test sets for different jdk versions -->
255 <fileset dir="${jtreg.src.dir}">
256 <patternset id="jdk9.jtreg.tests">
257 <include name="**/*.java"/>
258 </patternset>
259 </fileset>
260
261 <fileset dir="${jtreg.src.dir}">
262 <patternset id="jdk8.jtreg.tests">
263 <include name="**/*.java"/>
264 <exclude name="util/Spliterator/SpliteratorCharacteristics.java"/>
265 </patternset>
266 </fileset>
267
268 <fileset dir="${jtreg.src.dir}">
269 <patternset id="jdk7.jtreg.tests">
270 <include name="**/*.java"/>
271 <exclude name="util/Collection/CollectionDefaults.java"/>
272 <exclude name="util/List/ListDefaults.java"/>
273 <exclude name="util/Spliterator/**/*.java"/>
274 <exclude name="util/concurrent/CompletableFuture/**/*.java"/>
275 <exclude name="util/concurrent/forkjoin/SubmissionTest.java"/>
276 <exclude name="util/concurrent/locks/StampedLock/**/*.java"/>
277 </patternset>
278 </fileset>
279
280 <macrodef name="run-jtreg-tests">
281 <!-- ant -Djtreg.src.dir=src/test/jtreg/util/concurrent/CompletableFuture test-jtreg -->
282 <attribute name="jtreg.src.dir" default="${jtreg.src.dir}"/>
283 <attribute name="source" default="7"/>
284 <attribute name="target"/>
285 <attribute name="workdir"/>
286 <attribute name="classes"/>
287 <attribute name="jtregflags" default=""/>
288 <sequential>
289 <delete dir="@{workdir}/JTwork" quiet="true"/>
290 <delete dir="@{workdir}/JTreport" quiet="true"/>
291 <mkdir dir="@{workdir}/JTwork/scratch"/>
292 <mkdir dir="@{workdir}/JTreport"/>
293 <jtreg dir="@{jtreg.src.dir}"
294 jdk="${jdk@{target}.home}"
295 workDir="@{workdir}/JTwork"
296 reportDir="@{workdir}/JTreport">
297 <patternset refid="jdk@{target}.jtreg.tests"/>
298 <arg value="-Xbootclasspath/p:@{classes}"/>
299 <arg value="-agentvm"/>
300 <arg value="-v:nopass,fail"/>
301 <arg value="-vmoptions:-esa -ea"/>
302 <arg value="-automatic"/>
303 <arg value="-k:!ignore"/>
304 <arg line="@{jtregflags}"/>
305 </jtreg>
306 </sequential>
307 </macrodef>
308
309 <!-- ALoops classpath -->
310 <path id="loops.classpath">
311 <pathelement location="${build.loops.dir}"/>
312 </path>
313
314 <!-- Support @jls tag, used in jdk8+ javadoc -->
315 <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
316 <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
317
318 <!-- Main targets -->
319
320 <property name="build.main.java.version" value="9"/>
321 <property name="build.main.javac" value="${javac9}"/>
322
323 <target name="dists"
324 depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
325 description="Builds all public jars and docs"/>
326
327 <target name="compile"
328 depends="configure-compiler"
329 description="Compiles src/main sources to build dir">
330
331 <mkdir dir="${build.classes.dir}"/>
332
333 <javac srcdir="${src.dir}"
334 destdir="${build.classes.dir}"
335 debug="${build.debug}"
336 debuglevel="${build.debuglevel}"
337 deprecation="${build.deprecation}"
338 classpath=""
339 includeAntRuntime="false"
340 includeJavaRuntime="false"
341 executable="${build.main.javac}"
342 fork="true">
343
344 <include name="**/*.java"/>
345 <compilerarg value="-Xprefer:source"/>
346 <compilerarg value="-XDignore.symbol.file=true"/>
347 <compilerarg value="-Xlint:all"/>
348 <compilerarg value="-Werror"/>
349 <compilerarg value="-Xdoclint:all/protected"/>
350 <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
351 <compilerarg line="${build.args}"/>
352
353 </javac>
354 </target>
355
356
357 <target name="jar"
358 depends="compile"
359 description="Builds library jar from compiled sources">
360
361 <jar destfile="${product.jar}">
362 <fileset dir="${build.classes.dir}"/>
363 </jar>
364 </target>
365
366
367 <target name="docs"
368 description="Builds javadocs for src/main to dist dir">
369
370 <delete dir="${docs.dir}"/>
371 <mkdir dir="${docs.dir}"/>
372
373 <!-- the packagenames="none" hack below prevents scanning the -->
374 <!-- sourcepath for packages -->
375
376 <javadoc destdir="${docs.dir}"
377 packagenames="none"
378 link="${java9.api.url}"
379 overview="${src.dir}/intro.html"
380 access="${build.javadoc.access}"
381 sourcepath="${src.dir}:${jdk9src.dir}"
382 classpath=""
383 executable="${javadoc9}">
384 <fileset dir="${src.dir}" defaultexcludes="yes">
385 <include name="**/*.java"/>
386 </fileset>
387 <arg line="-Xdocrootparent ${java9.docroot.url}"/>
388 <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
389 <arg value="-XDignore.symbol.file=true"/>
390 <arg value="-tag"/>
391 <arg value="${javadoc.jls.option}"/>
392 <arg value="-tag"/>
393 <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
394 <arg value="-tag"/>
395 <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
396 <arg value="-tag"/>
397 <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
398 </javadoc>
399 </target>
400
401
402 <target name="dist"
403 depends="dist-clean, dist-jar, dist-docs"
404 description="Puts all distributable products in single hierarchy"/>
405
406
407 <target name="release"
408 depends="dist"
409 description="Puts entire CVS tree, plus distribution productions, in a jar">
410
411 <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
412
413 <jar basedir="${basedir}" destfile="${release.jar}">
414 <!-- <exclude name="build/**"/> -->
415 <exclude name="${release.jar}"/>
416 <exclude name="user.properties"/>
417 <exclude name="etc/notes/**"/>
418 <exclude name="src/emulation/**"/>
419 <exclude name="**/SyntaxTest.java"/>
420 <exclude name="**/SuperfluousAbstract.java"/>
421 </jar>
422 </target>
423
424
425 <target name="clean"
426 description="Removes all build products">
427
428 <delete dir="${build.dir}"/>
429
430 </target>
431
432
433 <target name="dist-clean"
434 description="Removes all build and distribution products">
435
436 <delete dir="${build.dir}"/>
437 <delete dir="${dist.dir}"/>
438
439 </target>
440
441
442 <target name="dist-jar"
443 depends="clean, jar">
444 <copy file="${product.jar}" todir="${dist.dir}"/>
445 </target>
446
447 <target name="dist-docs"
448 depends="clean, docs">
449 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
450 </target>
451
452 <target name="tck" depends="test-tck" description="alias for test-tck"/>
453 <target name="test-tck"
454 depends="jar"
455 description="Runs tck tests for main directly">
456
457 <run-tck-tests
458 target="${build.main.java.version}"
459 workdir="${build.dir}"
460 classes="${product.jar}"/>
461 </target>
462
463 <target name="test-tck-parallelism-1"
464 description="Runs test-tck with given common pool parallelism">
465 <antcall target="test-tck">
466 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
467 </antcall>
468 </target>
469
470 <target name="test-tck-parallelism-0"
471 description="Runs test-tck with given common pool parallelism">
472 <antcall target="test-tck">
473 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
474 </antcall>
475 </target>
476
477 <target name="jtreg" depends="test-jtreg" description="alias for test-jtreg"/>
478 <target name="test-jtreg"
479 depends="jar"
480 description="Runs jtreg tests for main using the jtreg ant task">
481 <run-jtreg-tests
482 target="${build.main.java.version}"
483 workdir="${build.dir}"
484 classes="${product.jar}"/>
485 </target>
486
487 <target name="test"
488 depends="test-tck, test-tck-parallelism-1, test-jtreg"
489 description="Runs tck and jtreg tests for main">
490 </target>
491
492 <target name="test89"
493 description="Runs tck and jtreg tests for main for multiple java versions">
494
495 <antcall target="clean"/>
496 <antcall target="test">
497 <param name="build.main.java.version" value="8"/>
498 <param name="build.main.javac" value="${javac8}"/>
499 <param name="jtreg.exclude.file" value="${jtreg.src.dir}/jdk9tests"/>
500 </antcall>
501
502 <antcall target="clean"/>
503 <antcall target="test">
504 <param name="build.main.java.version" value="9"/>
505 <param name="build.main.javac" value="${javac9}"/>
506 </antcall>
507
508 </target>
509
510
511
512 <target name="configure-compiler">
513
514 <property name="unchecked.option" value="-Xlint:unchecked"/>
515
516 <condition property="warnunchecked.arg" value="${unchecked.option}">
517 <istrue value="${build.warnunchecked}"/>
518 </condition>
519
520 <property name="warnunchecked.arg" value=""/>
521
522
523 <!-- Common options in javac invocations -->
524 <property name="build.args" value="${warnunchecked.arg}"/>
525
526 </target>
527
528
529
530 <!-- Various demos and test programs -->
531
532
533 <target name="loops" depends="configure-compiler"
534 description="Benchmark from Doug Lea's AQS paper">
535
536 <mkdir dir="${build.loops.dir}"/>
537
538 <javac srcdir="${loops.src.dir}"
539 destdir="${build.loops.dir}"
540 debug="${build.debug}"
541 debuglevel="${build.debuglevel}"
542 deprecation="${build.deprecation}"
543 source="${build.sourcelevel}"
544 fork="true">
545
546 <compilerarg line="${build.args}"/>
547 <classpath refid="loops.classpath"/>
548 <compilerarg value="-XDignore.symbol.file=true"/>
549
550 </javac>
551
552 <java classname="ALoops" fork="true">
553 <classpath refid="loops.classpath"/>
554 </java>
555
556 </target>
557
558
559 <!-- jsr166 4jdk7 -->
560
561 <target name="4jdk7compile"
562 depends="configure-compiler"
563 description="Compiles src/jdk7 sources, targeting jdk7">
564
565 <mkdir dir="${build.4jdk7.classes.dir}"/>
566
567 <javac srcdir="${4jdk7src.dir}"
568 destdir="${build.4jdk7.classes.dir}"
569 debug="${build.debug}"
570 debuglevel="${build.debuglevel}"
571 deprecation="${build.deprecation}"
572 source="6"
573 classpath=""
574 bootclasspath="${bootclasspath6}"
575 includeAntRuntime="false"
576 includeJavaRuntime="false"
577 executable="${javac7}"
578 fork="true">
579
580 <include name="**/*.java"/>
581 <compilerarg value="-Xprefer:source"/>
582 <compilerarg value="-XDignore.symbol.file=true"/>
583 <compilerarg value="-Xlint:all"/>
584 <compilerarg value="-Werror"/>
585 <compilerarg line="${build.args}"/>
586
587 </javac>
588 </target>
589
590 <target name="4jdk7doclint"
591 depends="configure-compiler"
592 description="Finds doclint warnings">
593
594 <mkdir dir="${build.4jdk7.classes.dir}"/>
595
596 <javac srcdir="${4jdk7src.dir}"
597 destdir="${build.4jdk7.classes.dir}"
598 debug="${build.debug}"
599 debuglevel="${build.debuglevel}"
600 deprecation="${build.deprecation}"
601 source="6"
602 classpath=""
603 bootclasspath="${bootclasspath7}"
604 includeAntRuntime="false"
605 includeJavaRuntime="false"
606 executable="${javac8}"
607 fork="true">
608
609 <include name="**/*.java"/>
610 <compilerarg value="-Xprefer:source"/>
611 <compilerarg value="-XDignore.symbol.file=true"/>
612 <compilerarg value="-Xlint:all"/>
613 <compilerarg value="-Xdoclint:all/protected"/>
614 <compilerarg line="${build.args}"/>
615
616 </javac>
617 </target>
618
619
620 <target name="4jdk7jar"
621 depends="4jdk7compile"
622 description="Builds library jar from compiled sources">
623
624 <jar destfile="${4jdk7product.jar}">
625 <fileset dir="${build.4jdk7.classes.dir}"/>
626 </jar>
627
628 </target>
629
630
631 <target name="4jdk7-test-tck"
632 depends="4jdk7jar"
633 description="Runs tck tests for jsr166-4jdk7 directly">
634
635 <run-tck-tests
636 target="7"
637 workdir="${build.4jdk7.dir}"
638 classes="${4jdk7product.jar}">
639 <javac-elements>
640 <!-- JDK8+ test classes -->
641 <exclude name="*8Test.java"/>
642 <exclude name="*9Test.java"/>
643 <exclude name="DoubleAccumulatorTest.java"/>
644 <exclude name="DoubleAdderTest.java"/>
645 <exclude name="LongAccumulatorTest.java"/>
646 <exclude name="LongAdderTest.java"/>
647 <exclude name="CompletableFutureTest.java"/>
648 <exclude name="SplittableRandomTest.java"/>
649 <exclude name="StampedLockTest.java"/>
650 </javac-elements>
651 </run-tck-tests>
652 </target>
653
654
655 <target name="4jdk7-test-tck-junit"
656 depends="4jdk7compile"
657 description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
658
659 <junit printsummary="true"
660 showoutput="true"
661 errorProperty="junit.failed"
662 failureProperty="junit.failed"
663 includeantruntime="true"
664 jvm="${java7}"
665 fork="true">
666
667 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
668 <jvmarg value="-server"/>
669
670 <classpath>
671 <pathelement location="${junit.jar}"/>
672 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
673 </classpath>
674
675 <formatter type="brief"/>
676
677 <test name="${jsr166.tckTestClass}" haltonfailure="no">
678 </test>
679
680 </junit>
681 </target>
682
683 <target name="4jdk7-test-jtreg"
684 depends="4jdk7jar"
685 description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
686 <run-jtreg-tests
687 target="7"
688 workdir="${build.4jdk7.dir}"
689 classes="${4jdk7product.jar}"/>
690 </target>
691
692
693 <target name="4jdk7-test"
694 depends="4jdk7-test-tck, 4jdk7-test-jtreg"
695 description="Runs tck and jtreg tests for jsr166-4jdk7">
696 </target>
697
698
699 <target name="4jdk7docs"
700 description="Builds javadocs for src/jdk7 to dist dir">
701
702 <delete dir="${4jdk7docs.dir}"/>
703 <mkdir dir="${4jdk7docs.dir}"/>
704
705 <javadoc destdir="${4jdk7docs.dir}"
706 packagenames="none"
707 link="${java7.api.url}"
708 overview="${4jdk7src.dir}/intro.html"
709 access="${build.javadoc.access}"
710 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
711 classpath=""
712 executable="${javadoc7}">
713 <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
714 <include name="**/*.java"/>
715 </fileset>
716 <arg line="-Xdocrootparent ${java7.docroot.url}"/>
717 <arg value="-XDignore.symbol.file=true"/>
718 </javadoc>
719 </target>
720
721
722 <target name="4jdk7dist"
723 depends="4jdk7dist-jar, 4jdk7dist-docs"
724 description="Puts all distributable products in single hierarchy"/>
725
726
727 <target name="4jdk7clean"
728 description="Removes all 4jdk7 build products">
729
730 <delete dir="${build.4jdk7.dir}"/>
731
732 </target>
733
734
735 <target name="4jdk7dist-jar"
736 depends="4jdk7clean, 4jdk7jar">
737 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
738 </target>
739
740
741 <target name="4jdk7dist-docs"
742 depends="4jdk7clean, 4jdk7docs">
743 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
744 </target>
745
746
747 <!-- jsr166x -->
748
749 <target name="jsr166xcompile"
750 depends="configure-compiler"
751 description="Compiles jsr166x sources to build dir">
752
753 <mkdir dir="${build.jsr166x.classes.dir}"/>
754
755 <javac srcdir="${topsrc.dir}"
756 destdir="${build.jsr166x.classes.dir}"
757 debug="${build.debug}"
758 debuglevel="${build.debuglevel}"
759 deprecation="${build.deprecation}"
760 classpath=""
761 bootclasspath="${bootclasspath6}"
762 source="5"
763 includeAntRuntime="false"
764 includeJavaRuntime="false"
765 executable="${javac7}"
766 fork="true">
767
768 <include name="jsr166x/**/*.java"/>
769 <compilerarg value="-XDignore.symbol.file=true"/>
770 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
771 <compilerarg value="-Werror"/>
772 <compilerarg line="${build.args}"/>
773
774 </javac>
775 </target>
776
777
778 <target name="jsr166xjar"
779 depends="jsr166xcompile"
780 description="Builds library jar from compiled sources">
781
782 <jar destfile="${jsr166x.jar}">
783 <fileset dir="${build.jsr166x.classes.dir}"/>
784 </jar>
785
786 </target>
787
788
789 <target name="jsr166xdocs"
790 description="Builds javadocs to dist dir">
791
792 <delete dir="${jsr166xdocs.dir}"/>
793 <mkdir dir="${jsr166xdocs.dir}"/>
794
795 <javadoc destdir="${jsr166xdocs.dir}"
796 packagenames="jsr166x.*"
797 link="${java.api.url}"
798 access="${build.javadoc.access}"
799 sourcepath="${topsrc.dir}:${jdk6src.dir}"
800 bootclasspath="${bootclasspath6}"
801 source="5"
802 executable="${javadoc7}">
803 <arg line="-Xdocrootparent ${java.docroot.url}"/>
804 <arg value="-XDignore.symbol.file=true"/>
805
806 </javadoc>
807 </target>
808
809
810 <target name="jsr166xdist"
811 depends="jsr166xdist-jar, jsr166xdist-docs"
812 description="Puts all distributable products in single hierarchy"/>
813
814
815 <target name="jsr166xclean"
816 description="Removes all jsr166x build products">
817
818 <delete dir="${build.jsr166x.dir}"/>
819
820 </target>
821
822
823 <target name="jsr166xdist-jar"
824 depends="jsr166xclean, jsr166xjar">
825 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
826 </target>
827
828 <target name="jsr166xdist-docs"
829 depends="jsr166xclean, jsr166xdocs">
830 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
831 </target>
832
833 <!-- jsr166y -->
834
835
836 <target name="jsr166ycompile"
837 depends="configure-compiler"
838 description="Compiles jsr166y sources">
839
840 <mkdir dir="${build.jsr166y.classes.dir}"/>
841
842 <javac srcdir="${topsrc.dir}"
843 destdir="${build.jsr166y.classes.dir}"
844 debug="${build.debug}"
845 debuglevel="${build.debuglevel}"
846 deprecation="${build.deprecation}"
847 source="6"
848 classpath=""
849 bootclasspath="${bootclasspath6}"
850 includeAntRuntime="false"
851 includeJavaRuntime="false"
852 executable="${javac7}"
853 fork="true">
854
855 <include name="jsr166y/**/*.java"/>
856 <compilerarg value="-XDignore.symbol.file=true"/>
857 <compilerarg value="-Xlint:all"/>
858 <compilerarg value="-Werror"/>
859 <compilerarg line="${build.args}"/>
860
861 </javac>
862 </target>
863
864
865 <target name="jsr166yjar"
866 depends="jsr166ycompile"
867 description="Builds library jar from compiled sources">
868
869 <jar destfile="${jsr166y.jar}" index="true">
870 <fileset dir="${build.jsr166y.classes.dir}"/>
871 </jar>
872
873 </target>
874
875
876 <target name="jsr166ydocs"
877 description="Builds javadocs to dist dir">
878
879 <delete dir="${jsr166ydocs.dir}"/>
880 <mkdir dir="${jsr166ydocs.dir}"/>
881
882 <javadoc destdir="${jsr166ydocs.dir}"
883 packagenames="jsr166y.*"
884 link="${java.api.url}"
885 access="${build.javadoc.access}"
886 sourcepath="${topsrc.dir}:${jdk6src.dir}"
887 bootclasspath="${bootclasspath6}"
888 source="6"
889 executable="${javadoc7}">
890 <arg line="-Xdocrootparent ${java.docroot.url}"/>
891 <arg value="-XDignore.symbol.file=true"/>
892
893 </javadoc>
894 </target>
895
896
897 <target name="jsr166ydist"
898 depends="jsr166ydist-jar, jsr166ydist-docs"
899 description="Puts all distributable products in single hierarchy"/>
900
901
902 <target name="jsr166yclean"
903 description="Removes all jsr166y build products">
904
905 <delete dir="${build.jsr166y.dir}"/>
906
907 </target>
908
909
910 <target name="jsr166ydist-jar"
911 depends="jsr166yclean, jsr166yjar">
912 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
913 </target>
914
915 <target name="jsr166ydist-docs"
916 depends="jsr166yclean, jsr166ydocs">
917 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
918 </target>
919
920
921 <!-- extra166y -->
922
923
924 <target name="extra166ycompile"
925 depends="configure-compiler, jsr166yjar"
926 description="Compiles extra166y sources">
927
928 <mkdir dir="${build.extra166y.classes.dir}"/>
929
930 <javac srcdir="${topsrc.dir}"
931 destdir="${build.extra166y.classes.dir}"
932 debug="${build.debug}"
933 debuglevel="${build.debuglevel}"
934 deprecation="${build.deprecation}"
935 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
936 classpath=""
937 source="6"
938 includeAntRuntime="false"
939 includeJavaRuntime="false"
940 executable="${javac7}"
941 fork="true">
942
943 <include name="extra166y/**/*.java"/>
944 <compilerarg value="-XDignore.symbol.file=true"/>
945 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
946 <compilerarg value="-Werror"/>
947 <compilerarg line="${build.args}"/>
948
949 </javac>
950 </target>
951
952
953 <target name="extra166yjar"
954 depends="extra166ycompile"
955 description="Builds library jar from compiled sources">
956
957 <jar destfile="${extra166y.jar}" index="true">
958 <fileset dir="${build.extra166y.classes.dir}"/>
959 </jar>
960
961 </target>
962
963
964 <target name="extra166ydocs"
965 description="Builds javadocs to build dir">
966
967 <delete dir="${extra166ydocs.dir}"/>
968 <mkdir dir="${extra166ydocs.dir}"/>
969
970 <javadoc destdir="${extra166ydocs.dir}"
971 packagenames="extra166y.*"
972 link="${java.api.url}"
973 access="${build.javadoc.access}"
974 sourcepath="${topsrc.dir}:${jdk6src.dir}"
975 bootclasspath="${bootclasspath6}"
976 source="6"
977 executable="${javadoc7}">
978 <arg line="-Xdocrootparent ${java.docroot.url}"/>
979 <arg value="-XDignore.symbol.file=true"/>
980
981 </javadoc>
982 </target>
983
984
985 <target name="extra166ydist"
986 depends="extra166ydist-jar, extra166ydist-docs"
987 description="Puts all distributable products in single hierarchy"/>
988
989
990 <target name="extra166yclean"
991 description="Removes all extra166y build products">
992
993 <delete dir="${build.extra166y.dir}"/>
994
995 </target>
996
997
998 <target name="extra166ydist-jar"
999 depends="extra166yclean, extra166yjar">
1000 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1001 </target>
1002
1003 <target name="extra166ydist-docs"
1004 depends="extra166yclean, extra166ydocs">
1005 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1006 </target>
1007
1008 <!-- jsr166e -->
1009
1010 <property name="build.jsr166e.java.version" value="6"/>
1011 <property name="build.jsr166e.javac" value="${javac6}"/>
1012
1013 <target name="jsr166ecompile"
1014 depends="configure-compiler"
1015 description="Compiles jsr166e sources">
1016
1017 <mkdir dir="${build.jsr166e.classes.dir}"/>
1018
1019 <javac srcdir="${topsrc.dir}"
1020 destdir="${build.jsr166e.classes.dir}"
1021 debug="${build.debug}"
1022 debuglevel="${build.debuglevel}"
1023 deprecation="${build.deprecation}"
1024 source="${build.jsr166e.java.version}"
1025 classpath=""
1026 includeAntRuntime="false"
1027 includeJavaRuntime="false"
1028 executable="${build.jsr166e.javac}"
1029 fork="true">
1030
1031 <include name="jsr166e/**/*.java"/>
1032 <compilerarg value="-XDignore.symbol.file=true"/>
1033 <compilerarg value="-Xlint:all"/>
1034 <compilerarg value="-Werror"/>
1035 <compilerarg line="${build.args}"/>
1036
1037 </javac>
1038 </target>
1039
1040 <!-- jsr166e: find doclint errors -->
1041 <target name="jsr166edoclint">
1042
1043 <mkdir dir="${build.jsr166e.classes.dir}"/>
1044
1045 <javac srcdir="${topsrc.dir}"
1046 destdir="${build.jsr166e.classes.dir}"
1047 debug="${build.debug}"
1048 debuglevel="${build.debuglevel}"
1049 deprecation="${build.deprecation}"
1050 source="${build.jsr166e.java.version}"
1051 classpath=""
1052 bootclasspath="${bootclasspath7}"
1053 includeAntRuntime="false"
1054 includeJavaRuntime="false"
1055 executable="${javac8}"
1056 fork="true">
1057
1058 <include name="jsr166e/**/*.java"/>
1059 <compilerarg value="-XDignore.symbol.file=true"/>
1060 <compilerarg value="-Xlint:all"/>
1061 <compilerarg value="-Werror"/>
1062 <compilerarg value="-Xdoclint:all/protected"/>
1063
1064 </javac>
1065 </target>
1066
1067
1068 <target name="jsr166ejar"
1069 depends="jsr166ecompile"
1070 description="Builds library jar from compiled sources">
1071
1072 <jar destfile="${jsr166e.jar}" index="true">
1073 <fileset dir="${build.jsr166e.classes.dir}"/>
1074 </jar>
1075
1076 </target>
1077
1078
1079 <target name="jsr166edocs"
1080 description="Builds javadocs to build dir">
1081
1082 <delete dir="${jsr166edocs.dir}"/>
1083 <mkdir dir="${jsr166edocs.dir}"/>
1084
1085 <javadoc destdir="${jsr166edocs.dir}"
1086 packagenames="jsr166e.*"
1087 link="${java.api.url}"
1088 access="${build.javadoc.access}"
1089 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1090 source="${build.jsr166e.java.version}"
1091 executable="${javadoc7}">
1092 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1093 <arg value="-XDignore.symbol.file=true"/>
1094
1095 </javadoc>
1096 </target>
1097
1098
1099 <target name="jsr166e-test-tck-one-java-version"
1100 depends="jsr166ejar">
1101
1102 <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1103
1104 <run-tck-tests
1105 tck.src.dir="${test.src.dir}/tck-jsr166e"
1106 target="${build.jsr166e.java.version}"
1107 workdir="${build.jsr166e.dir}"
1108 classes="${jsr166e.jar}"/>
1109 </target>
1110
1111 <target name="jsr166e-test-tck"
1112 description="Runs tck tests for jsr166e for multiple java versions">
1113
1114 <!-- <antcall target="clean"/> -->
1115 <!-- <antcall target="jsr166e-test-tck-one-java-version"> -->
1116 <!-- <param name="build.jsr166e.java.version" value="8"/> -->
1117 <!-- <param name="build.jsr166e.javac" value="${javac8}"/> -->
1118 <!-- </antcall> -->
1119
1120 <antcall target="clean"/>
1121 <antcall target="jsr166e-test-tck-one-java-version">
1122 <param name="build.jsr166e.java.version" value="7"/>
1123 <param name="build.jsr166e.javac" value="${javac7}"/>
1124 </antcall>
1125
1126 <antcall target="clean"/>
1127 <antcall target="jsr166e-test-tck-one-java-version">
1128 <param name="build.jsr166e.java.version" value="6"/>
1129 <param name="build.jsr166e.javac" value="${javac6}"/>
1130 </antcall>
1131 </target>
1132
1133
1134 <target name="jsr166e-test"
1135 depends="jsr166e-test-tck"
1136 description="Runs all tests for jsr166e">
1137 </target>
1138
1139 <target name="jsr166edist"
1140 depends="jsr166edist-jar, jsr166edist-docs"
1141 description="Puts all distributable products in single hierarchy"/>
1142
1143
1144 <target name="jsr166eclean"
1145 description="Removes all jsr166e build products">
1146 <delete dir="${build.jsr166e.dir}"/>
1147 </target>
1148
1149
1150 <target name="jsr166edist-jar"
1151 depends="jsr166eclean, jsr166ejar">
1152 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1153 </target>
1154
1155 <target name="jsr166edist-docs"
1156 depends="jsr166eclean, jsr166edocs">
1157 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1158 </target>
1159
1160
1161 <!-- Find buglets that can be detected by static build tools -->
1162
1163 <target name="lint">
1164 <antcall target="dists">
1165 <param name="build.javadoc.access" value="public"/>
1166 </antcall>
1167 </target>
1168
1169 <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1170 <target name="lint-private">
1171 <antcall target="dist">
1172 <param name="build.javadoc.access" value="private"/>
1173 </antcall>
1174 </target>
1175
1176
1177 </project>