ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.137
Committed: Wed Feb 6 19:55:06 2013 UTC (11 years, 2 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.136: +2 -1 lines
Log Message:
Add CompletableFutureTest

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