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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.74  
changed lines
  Added in v.1.237

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