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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.105  
changed lines
  Added in v.1.258

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