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

Diff of /jsr166/build.xml

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

revision 1.107 by jsr166, Sat Jan 19 23:40:04 2013 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    
# Line 13  Line 18 
18    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
19    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
20    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
21    $HOME/jdk/jdk7    $HOME/jdk/jdk7
22    $HOME/jdk/jdk8    $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    where each of the above is a JDK or a symlink to same, and
   $HOME/jdk/src/jdk6  
26    $HOME/jdk/src/jdk7    $HOME/jdk/src/jdk7
27    $HOME/jdk/src/jdk8    $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    where each of the above is a complete JDK source tree
31    (e.g. mercurial forest) or a symlink to same.    (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.6"/>    <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.loops.dir"             location="${build.dir}/loops"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
   <property name="build.lib.dir"               location="${build.dir}/lib"/>  
   <property name="build.javadocs.dir"          location="${build.dir}/javadocs"/>  
   <property name="build.reports.dir"           location="${build.dir}/reports"/>  
   
   <property name="build.4jdk7.dir"              location="${build.dir}/4jdk7"/>  
   <property name="build.4jdk7.lib.dir"          location="${build.4jdk7.dir}"/>  
   <property name="build.4jdk7.classes.dir"      location="${build.4jdk7.dir}/classes"/>  
   <property name="build.4jdk7.tck.classes.dir"  location="${build.4jdk7.dir}/tck/classes"/>  
   <property name="build.4jdk7.docs.dir"         location="${build.4jdk7.dir}/docs"/>  
66    
67    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
69    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
70      <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
71    
72      <property name="build.4jdk8.dir"             location="${build.dir}/jsr166-4jdk8"/>
73      <property name="build.4jdk8.classes.dir"     location="${build.4jdk8.dir}/classes"/>
74      <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/>
75      <property name="build.4jdk8.docs.dir"        location="${build.4jdk8.dir}/docs"/>
76    
77      <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
78    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
   <property name="build.jsr166ylib.dir"        location="${build.dir}/jsr166ylib"/>  
   <property name="build.jsr166yjavadocs.dir"   location="${build.dir}/jsr166yjavadocs"/>  
   
79    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
   <property name="build.jsr166elib.dir"        location="${build.dir}/jsr166elib"/>  
   <property name="build.jsr166ejavadocs.dir"   location="${build.dir}/jsr166ejavadocs"/>  
   
80    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
   <property name="build.extra166ylib.dir"      location="${build.dir}/extra166ylib"/>  
   <property name="build.extra166yjavadocs.dir" location="${build.dir}/extra166yjavadocs"/>  
81    
82    <!-- JDK binary locations -->    <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"/>    <property name="jdks.home"  location="${user.home}/jdk"/>
89    
90    <macrodef name="defjdklocations">    <macrodef name="defjdklocations">
91      <attribute name="v"/>      <attribute name="v"/>
92      <sequential>      <sequential>
93      <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>      <property name="jdk@{v}.home"     location="${jdks.home}/jdk@{v}"/>
94      <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>      <property name="java@{v}"         location="${jdk@{v}.home}/bin/java"/>
95      <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>      <property name="javac@{v}"        location="${jdk@{v}.home}/bin/javac"/>
96      <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>      <property name="javadoc@{v}"      location="${jdk@{v}.home}/bin/javadoc"/>
97      <property name="bootdir@{v}"    location="${jdk@{v}.home}/jre/lib"/>      <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
98      <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>      <local name="have.java.base"/>
99      <property name="bootclasspath@{v}"      <available property="have.java.base"
100       value="${bootdir@{v}}/resources.jar:${bootdir@{v}}/rt.jar:${bootdir@{v}}/jsse.jar:${bootdir@{v}}/jce.jar:${bootdir@{v}}/:${bootdir@{v}}/charsets.jar"/>        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>      </sequential>
118    </macrodef>    </macrodef>
119    
120    <defjdklocations v="6"/>    <macrodef name="mirror-dir">
121    <defjdklocations v="7"/>      <attribute name="src"/>
122    <defjdklocations v="8"/>      <attribute name="dst"/>
   
   <macrodef name="run-tck-tests">  
     <attribute name="jvm"/>  
     <attribute name="tck.classes"/>  
     <attribute name="product.jar" default="${product.jar}"/>  
     <attribute name="jvmflags" default=""/>  
123      <sequential>      <sequential>
124      <java classname="JSR166TestCase"      <delete dir="@{dst}"/>
125            jvm="@{jvm}" fork="true">      <mkdir dir="@{dst}"/>
126          <jvmarg value="-Xbootclasspath/p:@{product.jar}"/>      <copy todir="@{dst}" preservelastmodified="true">
127          <jvmarg line="@{jvmflags}"/>        <fileset dir="@{src}"/>
128          <classpath>      </copy>
           <pathelement location="${junit.jar}"/>  
           <pathelement location="@{tck.classes}"/>  
         </classpath>  
     </java>  
129      </sequential>      </sequential>
130    </macrodef>    </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"/>
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="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
145      <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="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
152      <property name="4jdk8src.dir"         location="${topsrc.dir}/jdk8"/>
153    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
154    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
155    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
156    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
   <property name="jdksrc.dir"           location="/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"/>  
157    
158    <!-- Distribution locations -->    <!-- Javadoc locations -->
159    <property name="dist.javadocs.dir"          location="${dist.dir}/docs"/>    <property name="docs.dir"          location="${build.dir}/docs"/>
160    <property name="dist.4jdk7.docs.dir"        location="${dist.dir}/jsr166-4jdk7docs"/>    <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
161    <property name="dist.jsr166xjavadocs.dir"   location="${dist.dir}/jsr166xdocs"/>    <property name="4jdk8docs.dir"     location="${build.4jdk8.dir}/docs"/>
162    <property name="dist.jsr166yjavadocs.dir"   location="${dist.dir}/jsr166ydocs"/>    <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
163    <property name="dist.jsr166ejavadocs.dir"   location="${dist.dir}/jsr166edocs"/>    <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
164    <property name="dist.extra166yjavadocs.dir" location="${dist.dir}/extra166ydocs"/>    <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="4jdk7product.jar" location="${build.4jdk7.lib.dir}/jsr166-4jdk7.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
178    <property name="jsr166x.jar"      location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
179    <property name="jsr166y.jar"      location="${build.jsr166ylib.dir}/jsr166y.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
180    <property name="jsr166e.jar"      location="${build.jsr166elib.dir}/jsr166e.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
181    <property name="extra166y.jar"    location="${build.extra166ylib.dir}/extra166y.jar"/>    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
182      <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
183    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
184    
185    <!-- Bootclasspath argument -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
186    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
187      <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
188      <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
189      <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      <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
192      <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>
193      <!-- Default jdk doc location (latest stable release seems best) -->
194      <property name="java.docroot.url"       value="${java8.docroot.url}"/>
195    
196    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
197    <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
198    <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>    <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
199    <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
200      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
201    <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
202    <!-- The below does not yet exist as of 2012-11 -->    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
203    <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->  
204      <!-- Define the "jtreg" task -->
205    <!-- Default jdk api doc location (latest stable release seems best) -->    <!-- See the docs in "jtreg -onlineHelp" -->
206    <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>    <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
207               classpath="${lib.dir}/jtreg.jar" />
208    <!-- Test classpath -->  
209    <path id="test.classpath">    <!-- Tck options; see JSR166TestCase.java
210      <pathelement location="${build.testcases.dir}"/>     To profile a single tck test class:
211      <pathelement location="${junit.jar}"/>     ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
212    </path>     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        <sequential>
231    
232        <local name="modules"/>
233        <condition property="modules">
234          <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
235        </condition>
236    
237        <mkdir dir="@{workdir}/tck-classes"/>
238    
239        <javac srcdir="@{tck.src.dir}"
240               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}"/>
260          <javac-elements/>
261    
262        </javac>
263    
264        <java classname="${jsr166.tckTestClass}"
265              failonerror="true"
266              jvm="${java@{target}}"
267              fork="true">
268            <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
269            <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
270            <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        </sequential>
293      </macrodef>
294    
295      <!-- Define jtreg test sets for different jdk versions -->
296      <fileset dir="${jtreg9.src.dir}">
297        <patternset id="jdk9.jtreg.tests">
298          <include name="**/*.java"/>
299        </patternset>
300      </fileset>
301    
302      <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      <macrodef name="run-jtreg-tests">
318        <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
319        <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 -->    <!-- ALoops classpath -->
356    <path id="loops.classpath">    <path id="loops.classpath">
# Line 170  Line 358 
358    </path>    </path>
359    
360    <!-- Support @jls tag, used in jdk8+ javadoc -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
361    <!-- TODO: How do we get &trade to work? -->    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
   <!-- TODO: Why isn't @jls a "standard" tag? -->  
   <!--   property name="javadoc.jls.cite" value="The Java&trade; Language Specification" -->  
   <property name="javadoc.jls.cite" value="The Java Language Specification"/>  
362    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
363    
364    <!-- Main targets -->    <!-- Main targets -->
365    
366      <property name="build.main.java.version" value="9"/>
367      <property name="build.main.javac" value="${javac9}"/>
368    
369    <target name="dists"    <target name="dists"
370            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
371            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
372    
373    <target name="compile"    <target name="compile"
374            depends="configure-compiler"            depends="configure-compiler"
375            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
376    
377      <mkdir dir="${build.classes.dir}"/>      <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      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
392             destdir="${build.classes.dir}"             destdir="${destdir}"
393             debug="${build.debug}"             debug="${build.debug}"
394             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
395             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
396             classpath=""             classpath=""
397             includeAntRuntime="false"             includeAntRuntime="false"
398             includeJavaRuntime="false"             includeJavaRuntime="false"
399             executable="${javac8}"             encoding="ASCII"
400               executable="${build.main.javac}"
401             fork="true">             fork="true">
402    
403        <include name="**/*.java"/>        <include name="**/*.java"/>
404        <compilerarg line="${build.args}"/>        <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>
405          <compilerarg value="-Xprefer:source"/>
406        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
407        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
408          <compilerarg value="-Werror"/>
409  <!--        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
410        <exclude name="java/lang/**"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
411        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <compilerarg line="-Xlint -Xmaxwarns 1000"/>  
 -->  
412    
413      </javac>      </javac>
   
414    </target>    </target>
415    
416    
   
417    <target name="jar"    <target name="jar"
418            depends="compile"            depends="compile"
419            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
420        <local name="subdir"/>
421      <mkdir dir="${build.lib.dir}"/>      <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
   
422      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
423        <fileset dir="${build.classes.dir}"/>        <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>      </jar>
   
429    </target>    </target>
430    
431    
   
   <target name="test"  
           depends="configure-tests, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
   
   
   
432    <target name="docs"    <target name="docs"
433            description="Builds javadocs for src/main to dist dir">            description="Builds javadocs for src/main to dist dir">
434    
435      <delete dir="${dist.javadocs.dir}"/>      <delete dir="${docs.dir}"/>
436      <mkdir dir="${dist.javadocs.dir}"/>      <mkdir dir="${docs.dir}"/>
437    
438      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
439      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
440    
441      <javadoc destdir="${dist.javadocs.dir}"  <!-- 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"               packagenames="none"
448               link="${jdkapi8docs.url}"               link="${java9.api.url}"
449               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
450               sourcepath="${src.dir}:${jdk8src.dir}"               access="${build.javadoc.access}"
451                 sourcepath="${src.dir}"
452               classpath=""               classpath=""
453               executable="${javadoc8}">               executable="${javadoc9}">
       <arg value="-XDignore.symbol.file=true"/>  
       <arg value="-tag"/>  
       <arg value="${javadoc.jls.option}"/>  
454        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
455          <include name="**/*.java"/>          <include name="**/*.java"/>
456        </fileset>        </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>      </javadoc>
   
476    </target>    </target>
477    
478    
   
479    <target name="dist"    <target name="dist"
480            depends="dist-clean, dist-jar, 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    
# Line 283  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    
   
   <!-- Internal targets -->  
   
   
523    <target name="dist-jar"    <target name="dist-jar"
524            depends="clean, jar">            depends="clean, jar">
   
525      <copy file="${product.jar}" todir="${dist.dir}"/>      <copy file="${product.jar}" todir="${dist.dir}"/>
526      </target>
527    
528      <target name="dist-docs"
529              depends="clean, docs">
530        <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
531    </target>    </target>
532    
533      <target name="tck"
534              depends="jar"
535              description="Runs tck tests for src/main directly">
536    
537    <target name="compile-tests"      <run-tck-tests
538            depends="jar">        target="${build.main.java.version}"
539          workdir="${build.dir}"
540          classes="${product.jar}">
541          <javac-elements>
542            <compilerarg value="-Werror"/>
543          </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>
576    
577      <mkdir dir="${build.testcases.dir}"/>    <target name="test"
578              depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
579              description="Runs tck and jtreg tests for src/main">
580      </target>
581    
582      <javac srcdir="${tck.src.dir}"  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
583    
584        <compilerarg value="${bootclasspath.args}"/>  <!--     <antcall target="jtreg"> -->
585        <compilerarg line="${build.args}"/>  <!--       <param name="build.main.java.version" value="8"/> -->
586        <compilerarg value="-XDignore.symbol.file=true"/>  <!--       <param name="build.main.javac" value="${javac8}"/> -->
587    <!--     </antcall> -->
588    
589        <classpath refid="test.classpath"/>  <!--   </target> -->
590    
591      </javac>  <!--   <target name="test89" -->
592    <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
593    
594      <javac srcdir="${test.src.dir}"  <!--     <antcall target="clean"/> -->
595            destdir="${build.testcases.dir}"  <!--     <antcall target="test"> -->
596              debug="${build.debug}"  <!--       <param name="build.main.java.version" value="8"/> -->
597         debuglevel="${build.debuglevel}"  <!--       <param name="build.main.javac" value="${javac8}"/> -->
598        deprecation="${build.deprecation}"  <!--     </antcall> -->
            source="${build.sourcelevel}"  
              fork="true">  
599    
600        <include name="jsr166/test/**"/>  <!--     <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        <compilerarg value="${bootclasspath.args}"/>  <!--   </target> -->
       <compilerarg line="${build.args}"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
607    
       <classpath refid="test.classpath"/>  
608    
     </javac>  
609    
610  <!--    <target name="configure-compiler">
611      <javac srcdir="${jtreg.src.dir}"      <fail message="ant version too old">
612            destdir="${build.testcases.dir}"        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
613        </fail>
614    
615        <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        <property name="warnunchecked.arg" value=""/>
622    
623    
624        <!-- Common options in javac invocations -->
625        <property name="build.args" value="${warnunchecked.arg}"/>
626    
627      </target>
628    
629    
630    
631      <!-- Various demos and test programs -->
632    
633    
634      <!-- description="Benchmark from Doug Lea's AQS paper" -->
635      <target name="loops" depends="configure-compiler">
636    
637        <mkdir dir="${build.loops.dir}"/>
638    
639        <javac srcdir="${loops.src.dir}"
640              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        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
652    
       <classpath refid="test.classpath"/>  
   
653      </javac>      </javac>
654  -->  
655        <java classname="ALoops" fork="true">
656          <classpath refid="loops.classpath"/>
657        </java>
658    
659    </target>    </target>
660    
661    
662    <target name="run-tests"    <target name="compile-test-loops" depends="jar"
663            depends="compile-tests">            description="compile all the perf tests in src/test/loops">
664    
665      <!-- May be overridden by user.properties -->      <mkdir dir="${build.dir}/test/loops"/>
     <property name="testcase" value="*"/>  
666    
667      <mkdir dir="${build.reports.dir}"/>      <javac srcdir="${basedir}/src/test/loops"
668               destdir="${build.dir}/test/loops"
669               debug="${build.debug}"
670               debuglevel="${build.debuglevel}"
671               deprecation="${build.deprecation}"
672               includeAntRuntime="false"
673               includeJavaRuntime="false"
674               encoding="ASCII"
675               executable="${javac9}"
676               fork="true">
677    
678      <junit printsummary="true"        <include name="*.java"/>
679               showoutput="true"        <compilerarg value="-XDignore.symbol.file=true"/>
680            errorProperty="junit.failed"        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
681          failureProperty="junit.failed"        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
682                      dir="${build.reports.dir}"        <compilerarg line="${build.args}"/>
                    fork="true">  
683    
684        <jvmarg value="${bootclasspath.args}"/>      </javac>
       <jvmarg value="-server"/>  
       <jvmarg value="-showversion"/>  
685    
686        <classpath refid="test.classpath"/>    </target>
687    
       <formatter type="xml"/>  
688    
689        <batchtest todir="${build.reports.dir}" unless="no.test.tck">    <!-- jsr166 4jdk8 -->
         <fileset dir="${tck.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
   
       <batchtest todir="${build.reports.dir}" if="do.test.old">  
         <fileset dir="${test.src.dir}">  
           <include name="jsr166/test/**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
   
 <!--  
       <batchtest todir="${build.reports.dir}" if="do.test.jtreg">  
         <fileset dir="${jtreg.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
 -->  
690    
691      </junit>    <target name="4jdk8compile"
692              depends="configure-compiler"
693              description="Compiles src/jdk8 sources, targeting jdk8">
694    
695        <mkdir dir="${build.4jdk8.classes.dir}"/>
696    
697        <javac srcdir="${4jdk8src.dir}"
698               destdir="${build.4jdk8.classes.dir}"
699               debug="${build.debug}"
700               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          <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        </javac>
720    </target>    </target>
721    
722      <target name="4jdk8doclint"
723              depends="configure-compiler"
724              description="Finds doclint warnings">
725    
726    <target name="report-tests"      <mkdir dir="${build.4jdk8.classes.dir}"/>
           depends="run-tests">  
727    
728      <!-- Sets junit.report.format to frames if redirection is present,      <javac srcdir="${4jdk8src.dir}"
729           otherwise sets it to noframes. -->             destdir="${build.4jdk8.classes.dir}"
730      <available property="junit.report.format"             debug="${build.debug}"
731                    value="frames"             debuglevel="${build.debuglevel}"
732                classname="org.apache.xalan.lib.Redirect"             deprecation="${build.deprecation}"
733      />             source="8"
734      <property name="junit.report.format" value="noframes"/>             target="8"
735               classpath=""
736      <junitreport todir="${build.reports.dir}">             bootclasspath="${bootclasspath8}"
737        <fileset dir="${build.reports.dir}">             includeAntRuntime="false"
738          <include name="TEST-*.xml"/>             includeJavaRuntime="false"
739        </fileset>             encoding="ASCII"
740        <report format="${junit.report.format}" todir="${build.reports.dir}"             executable="${javac8}"
741        />             fork="true">
     </junitreport>  
742    
743      <fail message="Test Cases Failed" if="junit.failed"/>        <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="configure-compiler">    <target name="4jdk8jar"
755              depends="4jdk8compile"
756      <property name="unchecked.option" value="-Xlint:unchecked"/>            description="Builds library jar from compiled sources">
757    
758      <condition property="warnunchecked.arg" value="${unchecked.option}">      <jar destfile="${4jdk8product.jar}">
759        <istrue value="${build.warnunchecked}"/>        <fileset dir="${build.4jdk8.classes.dir}"/>
760      </condition>        <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      <property name="warnunchecked.arg" value=""/>    </target>
767    
768    
769      <!-- Common options in javac invocations -->    <target name="4jdk8-tck"
770      <property name="build.args" value="${warnunchecked.arg}"/>            depends="4jdk8jar"
771              description="Runs tck tests for jsr166-4jdk8 directly">
772    
773        <run-tck-tests
774          target="8"
775          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>    </target>
785    
786    
787    <target name="configure-tests"    <target name="4jdk8-jtreg"
788         depends="configure-compiler">            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    
     <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->  
     <available property="junit.available"  
                classname="junit.framework.Protectable"/>  
796    
797      <!-- Xalan -->    <target name="4jdk8-test"
798      <available property="xalan.available"            depends="4jdk8-tck, 4jdk8-jtreg"
799                 classname="org.apache.xalan.Version"/>            description="Runs tck and jtreg tests for jsr166-4jdk8">
800      </target>
801    
802    
803      <!-- Ant 1.6beta and later don't need or want this check -->    <target name="4jdk8docs"
804      <!--            description="Builds javadocs for src/jdk8 to dist dir">
     <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"  
           unless="junit.available"/>  
805    
806      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"      <delete dir="${4jdk8docs.dir}"/>
807            unless="xalan.available"/>      <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>    </target>
834    
835    
836    <!-- Various demos and test programs -->    <target name="4jdk8dist"
837              depends="4jdk8dist-jar, 4jdk8dist-docs"
838              description="Puts all distributable products in single hierarchy"/>
839    
840    
841    <target name="loops" depends="configure-compiler"    <target name="4jdk8clean"
842            description="Benchmark from Doug Lea's AQS paper">            description="Removes all 4jdk8 build products">
843    
844      <mkdir dir="${build.loops.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
845    
846      <javac srcdir="${loops.src.dir}"    </target>
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
847    
       <compilerarg line="${build.args}"/>  
       <classpath refid="loops.classpath"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
848    
849      </javac>    <target name="4jdk8dist-jar"
850              depends="4jdk8clean, 4jdk8jar">
851        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
852      </target>
853    
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
854    
855      <target name="4jdk8dist-docs"
856              depends="4jdk8clean, 4jdk8docs">
857        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
858    </target>    </target>
859    
860    
   <!-- jsr166 4jdk7 -->  
861    
862      <!-- jsr166 4jdk7 -->
863    
864    <target name="4jdk7compile"    <target name="4jdk7compile"
865            depends="configure-compiler"            depends="configure-compiler"
# Line 537  Line 873 
873             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
874             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
875             source="6"             source="6"
876               target="6"
877             classpath=""             classpath=""
878             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
879             includeAntRuntime="false"             includeAntRuntime="false"
880             includeJavaRuntime="false"             includeJavaRuntime="false"
881               encoding="ASCII"
882             executable="${javac7}"             executable="${javac7}"
883             fork="true">             fork="true">
884    
885        <include name="**/*.java"/>        <include name="**/*.java"/>
886        <compilerarg line="${build.args}"/>        <compilerarg value="-Xprefer:source"/>
887        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
888        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
889          <compilerarg value="-Werror"/>
890          <compilerarg line="${build.args}"/>
891    
892      </javac>      </javac>
893      </target>
894    
895      <mkdir dir="${build.4jdk7.lib.dir}"/>    <target name="4jdk7doclint"
896              depends="configure-compiler"
897      <jar destfile="${4jdk7product.jar}" index="true">            description="Finds doclint warnings">
       <fileset dir="${build.4jdk7.classes.dir}"/>  
     </jar>  
898    
899      <mkdir dir="${build.4jdk7.tck.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
900    
901      <javac srcdir="${tck.src.dir}"      <javac srcdir="${4jdk7src.dir}"
902             destdir="${build.4jdk7.tck.classes.dir}"             destdir="${build.4jdk7.classes.dir}"
903             debug="${build.debug}"             debug="${build.debug}"
904             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
905             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
906             source="6"             source="6"
907             classpath="${junit.jar}"             target="6"
908             bootclasspath="${4jdk7product.jar}:${bootclasspath6}"             classpath=""
909               bootclasspath="${bootclasspath6}"
910             includeAntRuntime="false"             includeAntRuntime="false"
911             includeJavaRuntime="false"             includeJavaRuntime="false"
912             executable="${javac7}"             encoding="ASCII"
913               executable="${javac8}"
914             fork="true">             fork="true">
915    
916        <include name="**/*.java"/>        <include name="**/*.java"/>
917        <compilerarg line="${build.args}"/>        <compilerarg value="-Xprefer:source"/>
918        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
919        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>        <compilerarg value="-Xlint:all"/>
920          <compilerarg value="-Xdoclint:all/protected"/>
921          <compilerarg line="${build.args}"/>
922    
923      </javac>      </javac>
924      </target>
925    
926    
927      <target name="4jdk7jar"
928              depends="4jdk7compile"
929              description="Builds library jar from compiled sources">
930    
931        <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    </target>    </target>
940    
941    
942    <target name="4jdk7-test-tck"    <target name="4jdk7-tck"
943            depends="4jdk7compile"            depends="4jdk7jar"
944            description="Runs tck tests for jsr166-4jdk7 directly">            description="Runs tck tests for jsr166-4jdk7 directly">
945    
946      <run-tck-tests      <run-tck-tests
947        jvm="${java7}"        target="7"
948        tck.classes="${build.4jdk7.tck.classes.dir}"        workdir="${build.4jdk7.dir}"
949        product.jar="${4jdk7product.jar}"/>        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>    </target>
967    
968    
969    <target name="4jdk7-test-tck-junit"    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
970            depends="4jdk7compile"    <target name="4jdk7-tck-junit"
971            description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">            depends="4jdk7compile">
972    
973      <junit printsummary="true"      <junit printsummary="true"
974             showoutput="true"             showoutput="true"
# Line 614  Line 988 
988    
989        <formatter type="brief"/>        <formatter type="brief"/>
990    
991        <test name="JSR166TestCase" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
992        </test>        </test>
993    
994      </junit>      </junit>
995    </target>    </target>
996    
997      <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    
1006    
1007      <target name="4jdk7-test"
1008              depends="4jdk7-tck, 4jdk7-jtreg"
1009              description="Runs tck and jtreg tests for jsr166-4jdk7">
1010      </target>
1011    
1012    
1013    <target name="4jdk7docs"    <target name="4jdk7docs"
1014            description="Builds javadocs for src/jdk7 to dist dir">            description="Builds javadocs for src/jdk7 to dist dir">
1015    
1016      <delete dir="${dist.4jdk7.docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
1017      <mkdir dir="${dist.4jdk7.docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
1018    
1019      <javadoc destdir="${dist.4jdk7.docs.dir}"      <javadoc destdir="${4jdk7docs.dir}"
1020               packagenames="none"               packagenames="none"
1021               link="${jdkapi7docs.url}"               link="${java7.api.url}"
1022               overview="${4jdk7src.dir}/intro.html"               overview="${4jdk7src.dir}/intro.html"
1023               sourcepath="${4jdk7src.dir}:${jdk7src.dir}"               access="${build.javadoc.access}"
1024                 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1025               classpath=""               classpath=""
1026               executable="${javadoc7}">               executable="${javadoc7}"
1027        <arg value="-XDignore.symbol.file=true"/>               failonerror = "true">
1028        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1029          <include name="**/*.java"/>          <include name="**/*.java"/>
1030        </fileset>        </fileset>
1031          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
1032          <arg value="-XDignore.symbol.file=true"/>
1033      </javadoc>      </javadoc>
   
1034    </target>    </target>
1035    
1036    
1037    <target name="4jdk7dist"    <target name="4jdk7dist"
1038            depends="4jdk7dist-clean, 4jdk7dist-jar, 4jdk7docs"            depends="4jdk7dist-jar, 4jdk7dist-docs"
1039            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1040    
1041    
   
1042    <target name="4jdk7clean"    <target name="4jdk7clean"
1043            description="Removes all build products">            description="Removes all 4jdk7 build products">
1044    
1045      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
1046    
1047    </target>    </target>
1048    
1049    
   
   <target name="4jdk7dist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
1050    <target name="4jdk7dist-jar"    <target name="4jdk7dist-jar"
1051            depends="4jdk7clean, 4jdk7compile">            depends="4jdk7clean, 4jdk7jar">
   
1052      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1053      </target>
1054    
1055    
1056      <target name="4jdk7dist-docs"
1057              depends="4jdk7clean, 4jdk7docs">
1058        <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1059    </target>    </target>
1060    
   <!-- jsr166x -->  
1061    
1062      <!-- jsr166x -->
1063    
1064    <target name="jsr166xcompile"    <target name="jsr166xcompile"
1065            depends="configure-compiler"            depends="configure-compiler"
1066            description="Compiles jsr166x sources to build dir">            description="Compiles jsr166x sources to build dir">
1067    
1068      <mkdir dir="${build.jsr166x.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1069    
1070      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
1071             destdir="${build.jsr166x.dir}"             destdir="${build.jsr166x.classes.dir}"
1072             debug="${build.debug}"             debug="${build.debug}"
1073             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1074             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1075             classpath=""             classpath=""
            source="5"  
1076             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1077               source="5"
1078               target="5"
1079             includeAntRuntime="false"             includeAntRuntime="false"
1080             includeJavaRuntime="false"             includeJavaRuntime="false"
1081               encoding="ASCII"
1082             executable="${javac7}"             executable="${javac7}"
1083             fork="true">             fork="true">
1084    
1085        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1086        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1087        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1088          <compilerarg value="-Werror"/>
1089          <compilerarg line="${build.args}"/>
1090    
1091      </javac>      </javac>
   
1092    </target>    </target>
1093    
1094    
   
1095    <target name="jsr166xjar"    <target name="jsr166xjar"
1096            depends="jsr166xcompile"            depends="jsr166xcompile"
1097            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1098    
     <mkdir dir="${build.jsr166xlib.dir}"/>  
   
1099      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1100        <fileset dir="${build.jsr166x.dir}"/>        <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>      </jar>
1106    
1107    </target>    </target>
1108    
1109    
   
1110    <target name="jsr166xdocs"    <target name="jsr166xdocs"
1111            description="Builds javadocs to dist dir">            description="Builds javadocs to dist dir">
1112    
1113      <delete dir="${build.jsr166xjavadocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1114      <mkdir dir="${build.jsr166xjavadocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1115    
1116      <javadoc destdir="${build.jsr166xjavadocs.dir}"      <javadoc destdir="${jsr166xdocs.dir}"
1117               packagenames="jsr166x.*"               packagenames="jsr166x.*"
1118               link="${jdkapidocs.url}"               link="${java.api.url}"
1119               source="5"               access="${build.javadoc.access}"
1120                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1121               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1122               sourcepath="${topsrc.dir}:${jdk6src.dir}"               source="5"
1123               executable="${javadoc7}"               executable="${javadoc7}"
1124               additionalparam="-XDignore.symbol.file=true" />               failonerror = "true">
1125          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1126          <arg value="-XDignore.symbol.file=true"/>
1127    
1128        </javadoc>
1129    </target>    </target>
1130    
1131    
1132    <target name="jsr166xdist"    <target name="jsr166xdist"
1133            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"            depends="jsr166xdist-jar, jsr166xdist-docs"
1134            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1135    
1136    
   
1137    <target name="jsr166xclean"    <target name="jsr166xclean"
1138            description="Removes all build products">            description="Removes all jsr166x build products">
1139    
1140      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
     <delete dir="${build.jsr166xlib.dir}"/>  
1141    
1142    </target>    </target>
1143    
1144    
   
   <target name="jsr166xdist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
   
   
   <target name="jsr166xdist-docs"  
           description="Builds javadocs to dist dir">  
   
     <delete dir="${dist.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166xjavadocs.dir}"/>  
   
     <javadoc destdir="${dist.jsr166xjavadocs.dir}"  
              packagenames="jsr166x.*"  
              link="${jdkapidocs.url}"  
              source="${build.sourcelevel}"  
              sourcepath="${topsrc.dir}:${jdk6src.dir}"  
              executable="${javadoc7}"  
              additionalparam="-XDignore.symbol.file=true" />  
   
   </target>  
   
1145    <target name="jsr166xdist-jar"    <target name="jsr166xdist-jar"
1146            depends="jsr166xclean, jsr166xjar">            depends="jsr166xclean, jsr166xjar">
   
1147      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <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 -->    <!-- jsr166y -->
# Line 788  Line 1159 
1159            depends="configure-compiler"            depends="configure-compiler"
1160            description="Compiles jsr166y sources">            description="Compiles jsr166y sources">
1161    
1162      <mkdir dir="${build.jsr166y.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1163    
1164      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
1165             destdir="${build.jsr166y.dir}"             destdir="${build.jsr166y.classes.dir}"
1166             debug="${build.debug}"             debug="${build.debug}"
1167             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1168             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1169             source="6"             source="6"
1170               target="6"
1171             classpath=""             classpath=""
1172             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1173             includeAntRuntime="false"             includeAntRuntime="false"
1174             includeJavaRuntime="false"             includeJavaRuntime="false"
1175               encoding="ASCII"
1176             executable="${javac7}"             executable="${javac7}"
1177             fork="true">             fork="true">
1178    
1179        <include name="jsr166y/**/*.java"/>        <include name="jsr166y/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1180        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1181        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1182          <compilerarg value="-Werror"/>
1183          <compilerarg line="${build.args}"/>
1184    
1185      </javac>      </javac>
1186    </target>    </target>
1187    
# Line 815  Line 1190 
1190            depends="jsr166ycompile"            depends="jsr166ycompile"
1191            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1192    
     <mkdir dir="${build.jsr166ylib.dir}"/>  
   
1193      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1194        <fileset dir="${build.jsr166y.dir}"/>        <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>      </jar>
1200    
1201    </target>    </target>
1202    
1203    
   
1204    <target name="jsr166ydocs"    <target name="jsr166ydocs"
1205            description="Builds javadocs to dist dir">            description="Builds javadocs to dist dir">
1206    
1207      <delete dir="${build.jsr166yjavadocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1208      <mkdir dir="${build.jsr166yjavadocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1209    
1210      <javadoc destdir="${build.jsr166yjavadocs.dir}"      <javadoc destdir="${jsr166ydocs.dir}"
1211               packagenames="jsr166y.*"               packagenames="jsr166y.*"
1212               link="${jdkapidocs.url}"               link="${java.api.url}"
1213               source="6"               access="${build.javadoc.access}"
1214                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1215               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1216               sourcepath="${topsrc.dir}:${jdk6src.dir}"               source="6"
1217               executable="${javadoc7}"               executable="${javadoc7}"
1218               additionalparam="-XDignore.symbol.file=true" />               failonerror = "true">
1219          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1220          <arg value="-XDignore.symbol.file=true"/>
1221    
1222        </javadoc>
1223    </target>    </target>
1224    
1225    
1226    <target name="jsr166ydist"    <target name="jsr166ydist"
1227            depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydist-docs"            depends="jsr166ydist-jar, jsr166ydist-docs"
1228            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1229    
1230    
   
1231    <target name="jsr166yclean"    <target name="jsr166yclean"
1232            description="Removes all build products">            description="Removes all jsr166y build products">
1233    
1234      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
     <delete dir="${build.jsr166ylib.dir}"/>  
1235    
1236    </target>    </target>
1237    
1238    
   
   <target name="jsr166ydist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
   <target name="jsr166ydist-docs"  
           description="Builds javadocs to dist dir">  
   
     <delete dir="${dist.jsr166yjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166yjavadocs.dir}"/>  
   
     <javadoc destdir="${dist.jsr166yjavadocs.dir}"  
              packagenames="jsr166y.*"  
              link="${jdkapidocs.url}"  
              source="${build.sourcelevel}"  
              sourcepath="${topsrc.dir}:${jdk6src.dir}"  
              executable="${javadoc7}"  
              additionalparam="-XDignore.symbol.file=true" />  
   
   </target>  
   
1239    <target name="jsr166ydist-jar"    <target name="jsr166ydist-jar"
1240            depends="jsr166yclean, jsr166yjar">            depends="jsr166yclean, jsr166yjar">
   
1241      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1242      </target>
1243    
1244      <target name="jsr166ydist-docs"
1245              depends="jsr166yclean, jsr166ydocs">
1246        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1247    </target>    </target>
1248    
1249    
# Line 895  Line 1254 
1254            depends="configure-compiler, jsr166yjar"            depends="configure-compiler, jsr166yjar"
1255            description="Compiles extra166y sources">            description="Compiles extra166y sources">
1256    
1257      <mkdir dir="${build.extra166y.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1258    
1259      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
1260             destdir="${build.extra166y.dir}"             destdir="${build.extra166y.classes.dir}"
1261             debug="${build.debug}"             debug="${build.debug}"
1262             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1263             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1264               bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1265             classpath=""             classpath=""
1266             source="6"             source="6"
1267             bootclasspath="${jsr166y.jar}:${bootclasspath6}"             target="6"
1268             includeAntRuntime="false"             includeAntRuntime="false"
1269             includeJavaRuntime="false"             includeJavaRuntime="false"
1270               encoding="ASCII"
1271             executable="${javac7}"             executable="${javac7}"
1272             fork="true">             fork="true">
1273    
1274        <include name="extra166y/**/*.java"/>        <include name="extra166y/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1275        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1276        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1277          <compilerarg value="-Werror"/>
1278          <compilerarg line="${build.args}"/>
1279    
1280      </javac>      </javac>
   
1281    </target>    </target>
1282    
1283    
   
1284    <target name="extra166yjar"    <target name="extra166yjar"
1285            depends="extra166ycompile"            depends="extra166ycompile"
1286            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1287    
     <mkdir dir="${build.extra166ylib.dir}"/>  
   
1288      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1289        <fileset dir="${build.extra166y.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1290          <manifest>
1291            <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"    <target name="extra166ydocs"
1300            description="Builds javadocs to build dir">            description="Builds javadocs to build dir">
1301    
1302      <delete dir="${build.extra166yjavadocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1303      <mkdir dir="${build.extra166yjavadocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1304    
1305      <javadoc destdir="${build.extra166yjavadocs.dir}"      <javadoc destdir="${extra166ydocs.dir}"
1306               packagenames="extra166y.*"               packagenames="extra166y.*"
1307               link="${jdkapidocs.url}"               link="${java.api.url}"
1308               source="6"               access="${build.javadoc.access}"
1309                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1310               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1311               sourcepath="${topsrc.dir}:${jdk6src.dir}"               source="6"
1312               executable="${javadoc7}"               executable="${javadoc7}">
1313               additionalparam="-XDignore.symbol.file=true" />        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1314          <arg value="-XDignore.symbol.file=true"/>
1315    
1316        </javadoc>
1317    </target>    </target>
1318    
1319    
1320    <target name="extra166ydist"    <target name="extra166ydist"
1321            depends="extra166ydist-clean, extra166ydist-jar, extra166ydist-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"    <target name="extra166yclean"
1326            description="Removes all build products">            description="Removes all extra166y build products">
1327    
1328      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
     <delete dir="${build.extra166ylib.dir}"/>  
1329    
1330    </target>    </target>
1331    
1332    
   
   <target name="extra166ydist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
   <target name="extra166ydist-docs"  
           description="Builds javadocs to dist dir">  
   
     <delete dir="${dist.extra166yjavadocs.dir}"/>  
     <mkdir dir="${dist.extra166yjavadocs.dir}"/>  
   
     <javadoc destdir="${dist.extra166yjavadocs.dir}"  
              packagenames="extra166y.*"  
              link="${jdkapidocs.url}"  
              source="${build.sourcelevel}"  
              sourcepath="${topsrc.dir}:${jdk6src.dir}"  
              executable="${javadoc7}"  
              additionalparam="-XDignore.symbol.file=true" />  
   
   </target>  
   
1333    <target name="extra166ydist-jar"    <target name="extra166ydist-jar"
1334            depends="extra166yclean, extra166yjar">            depends="extra166yclean, extra166yjar">
   
1335      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1336      </target>
1337    
1338      <target name="extra166ydist-docs"
1339              depends="extra166yclean, extra166ydocs">
1340        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1341    </target>    </target>
1342    
1343    <!-- jsr166e -->    <!-- jsr166e -->
1344    
1345      <property name="build.jsr166e.java.version" value="6"/>
1346      <property name="build.jsr166e.javac" value="${javac6}"/>
1347    
1348    <target name="jsr166ecompile"    <target name="jsr166ecompile"
1349            depends="configure-compiler"            depends="configure-compiler"
1350            description="Compiles jsr166e sources">            description="Compiles jsr166e sources">
1351    
1352      <mkdir dir="${build.jsr166e.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1353    
1354      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
1355             destdir="${build.jsr166e.dir}"             destdir="${build.jsr166e.classes.dir}"
1356             debug="${build.debug}"             debug="${build.debug}"
1357             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1358             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1359             source="7"             source="${build.jsr166e.java.version}"
1360               target="${build.jsr166e.java.version}"
1361             classpath=""             classpath=""
1362             includeAntRuntime="false"             includeAntRuntime="false"
1363             includeJavaRuntime="false"             includeJavaRuntime="false"
1364             executable="${javac7}"             executable="${build.jsr166e.javac}"
1365             fork="true">             fork="true">
1366    
1367        <include name="jsr166e/**/*.java"/>        <include name="jsr166e/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1368        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1369        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1370          <compilerarg value="-Werror"/>
1371          <compilerarg line="${build.args}"/>
1372    
1373      </javac>      </javac>
   
1374    </target>    </target>
1375    
1376      <!-- jsr166e: find doclint errors -->
1377      <target name="jsr166edoclint">
1378    
1379        <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>
1403    
1404    
1405    <target name="jsr166ejar"    <target name="jsr166ejar"
1406            depends="jsr166ecompile"            depends="jsr166ecompile"
1407            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1408    
     <mkdir dir="${build.jsr166elib.dir}"/>  
   
1409      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1410        <fileset dir="${build.jsr166e.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1411          <manifest>
1412            <attribute name="Built-By" value="${user.name}"/>
1413            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1414          </manifest>
1415      </jar>      </jar>
1416    
1417    </target>    </target>
1418    
1419    
   
1420    <target name="jsr166edocs"    <target name="jsr166edocs"
1421            description="Builds javadocs to build dir">            description="Builds javadocs to build dir">
1422    
1423      <delete dir="${build.jsr166ejavadocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1424      <mkdir dir="${build.jsr166ejavadocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1425    
1426      <javadoc destdir="${build.jsr166ejavadocs.dir}"      <javadoc destdir="${jsr166edocs.dir}"
1427               packagenames="jsr166e.*"               packagenames="jsr166e.*"
1428               link="${jdkapidocs.url}"               link="${java.api.url}"
1429               source="7"               access="${build.javadoc.access}"
1430               sourcepath="${topsrc.dir}:${jdk7src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1431                 source="${build.jsr166e.java.version}"
1432               executable="${javadoc7}"               executable="${javadoc7}"
1433               additionalparam="-XDignore.symbol.file=true" >               failonerror = "true">
1434          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1435          <arg value="-XDignore.symbol.file=true"/>
1436    
1437      </javadoc>      </javadoc>
1438      </target>
1439    
1440    
1441      <target name="jsr166e-tck-one-java-version"
1442              depends="jsr166ejar">
1443    
1444        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
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>
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        <antcall target="clean"/>
1463        <antcall target="jsr166e-tck-one-java-version">
1464          <param name="build.jsr166e.java.version" value="7"/>
1465          <param name="build.jsr166e.javac" value="${javac7}"/>
1466        </antcall>
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>    </target>
1474    
1475    
1476      <target name="jsr166e-test"
1477              depends="jsr166e-tck"
1478              description="Runs all tests for jsr166e">
1479      </target>
1480    
1481    <target name="jsr166edist"    <target name="jsr166edist"
1482            depends="jsr166edist-clean, jsr166edist-jar, jsr166edist-docs"            depends="jsr166edist-jar, jsr166edist-docs"
1483            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1484    
1485    
   
1486    <target name="jsr166eclean"    <target name="jsr166eclean"
1487            description="Removes all build products">            description="Removes all jsr166e build products">
   
1488      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1489      <delete dir="${build.jsr166elib.dir}"/>    </target>
1490    
1491    
1492      <target name="jsr166edist-jar"
1493              depends="jsr166eclean, jsr166ejar">
1494        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1495    </target>    </target>
1496    
1497      <target name="jsr166edist-docs"
1498              depends="jsr166eclean, jsr166edocs">
1499        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1500      </target>
1501    
1502    
1503    <target name="jsr166edist-clean"  <!-- Find buglets that can be detected by static build tools -->
           description="Removes all build and distribution products">  
1504    
1505      <target name="lint">
1506        <antcall target="dists">
1507          <param name="build.javadoc.access" value="public"/>
1508        </antcall>
1509    </target>    </target>
1510    
1511    <target name="jsr166edist-docs"  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1512            description="Builds javadocs to dist dir">    <target name="lint-private">
1513        <antcall target="dist">
1514          <param name="build.javadoc.access" value="private"/>
1515        </antcall>
1516      </target>
1517    
     <delete dir="${dist.jsr166ejavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166ejavadocs.dir}"/>  
1518    
1519      <javadoc destdir="${dist.jsr166ejavadocs.dir}"  <!-- ==============================================================
1520               packagenames="jsr166e.*"    Experimental errorprone support - http://errorprone.info
1521               link="${jdkapidocs.url}"    You may need to bring your own errorprone jar.
1522               source="7"  =================================================================== -->
1523               sourcepath="${topsrc.dir}:${jdk7src.dir}"    <target name="errorprone"
1524               executable="${javadoc7}"            depends="clean, configure-compiler"
1525               additionalparam="-XDignore.symbol.file=true" />            description="Run errorprone over jsr166 source code">
1526    
1527    </target>      <local name="destdir"/>
1528        <property name="destdir" value="${build.classes.dir}/java.base"/>
1529        <mkdir dir="${destdir}"/>
1530    
1531    <target name="jsr166edist-jar"      <javac srcdir="${src.dir}"
1532            depends="jsr166eclean, jsr166ejar">             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      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>        <include name="**/*.java"/>
1544          <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        <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.107  
changed lines
  Added in v.1.237

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