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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.102  
changed lines
  Added in v.1.243

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