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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.98  
changed lines
  Added in v.1.242

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