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

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

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