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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.126  
changed lines
  Added in v.1.290

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