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

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

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