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

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

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