/[cvs]/jsr166/build.xml
ViewVC logotype

Diff of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.281

dl@cs.oswego.edu
ViewVC Help
Powered by ViewVC 1.1.27