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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.140  
changed lines
  Added in v.1.298

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