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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.106  
changed lines
  Added in v.1.256

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8