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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.101  
changed lines
  Added in v.1.238

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