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

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

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