/[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.234 by jsr166, Sat Feb 18 18:33:42 2017 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage">  <project name="jsr166" default="usage"
2      xmlns:if="ant:if" xmlns:unless="ant:unless"
3      xmlns:ivy="antlib:org.apache.ivy.ant">
4    
5    <description>    <description>
6  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 6  Line 8 
8    
9    Usage: ant [target]    Usage: ant [target]
10    
11      See http://gee.cs.oswego.edu/dl/concurrency-interest/index.html for
12      more details.
13    
14    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
15    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
16    
# Line 13  Line 18 
18    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
19    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
20    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
21    $HOME/jdk/jdk7    $HOME/jdk/jdk7
22    $HOME/jdk/jdk8    $HOME/jdk/jdk8
23      $HOME/jdk/jdk9
24      $HOME/jdk/jdk10
25    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  
26    $HOME/jdk/src/jdk7    $HOME/jdk/src/jdk7
27    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
28      $HOME/jdk/src/jdk9
29      $HOME/jdk/src/jdk10
30    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
31    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
32  As of 2013-02, the very latest lambda 8 jdk is needed for jdk8.  
33      Alternatively, define ant variables thus:
34      ant -Djdk$N.home=... -Djdk$N.src.home=...
35      for $N in 7 8 9 10 ...
36    
37      As of 2016-03, the sources in src/main are for jdk9+ only.
38  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
39    </description>    </description>
40    
41    <target name="usage" description="Display main targets by running 'ant -projecthelp'">    <!-- Run 'ant -projecthelp' (default target) -->
42      <target name="usage">
43      <java classname="org.apache.tools.ant.Main">      <java classname="org.apache.tools.ant.Main">
44        <arg value="-projecthelp" />        <arg value="-projecthelp" />
45      </java>      </java>
46    </target>    </target>
47    
48      <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
49    
50    <!-- User-specific settings -->    <!-- User-specific settings -->
51    <property file="user.properties"/>    <property file="user.properties"/>
# Line 44  As of 2013-02, the very latest lambda 8 Line 58  As of 2013-02, the very latest lambda 8
58    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
59    <property name="build.javadoc.access" value="protected"/>    <property name="build.javadoc.access" value="protected"/>
60    
   <!-- 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"/>  
   
61    <!-- Build locations -->    <!-- Build locations -->
62    <property name="build.dir"                   location="build"/>    <property name="build.dir"                   location="build"/>
63    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
64    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
65    <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"/>  
66    
67    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
69    <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"/>
70    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
71    
72      <property name="build.4jdk8.dir"             location="${build.dir}/jsr166-4jdk8"/>
73      <property name="build.4jdk8.classes.dir"     location="${build.4jdk8.dir}/classes"/>
74      <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/>
75      <property name="build.4jdk8.docs.dir"        location="${build.4jdk8.dir}/docs"/>
76    
77    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
78    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
79    <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 90  As of 2013-02, the very latest lambda 8
90    <macrodef name="defjdklocations">    <macrodef name="defjdklocations">
91      <attribute name="v"/>      <attribute name="v"/>
92      <sequential>      <sequential>
93      <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>      <property name="jdk@{v}.home"     location="${jdks.home}/jdk@{v}"/>
94      <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>      <property name="java@{v}"         location="${jdk@{v}.home}/bin/java"/>
95      <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>      <property name="javac@{v}"        location="${jdk@{v}.home}/bin/javac"/>
96      <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>      <property name="javadoc@{v}"      location="${jdk@{v}.home}/bin/javadoc"/>
97      <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}"/>
98        <local name="have.java.base"/>
99        <available property="have.java.base"
100          file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/>
101        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"
102          if:set="have.java.base"/>
103        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
104          unless:set="have.java.base"/>
105        <local name="modules"/>
106        <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
107      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
108      <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"/>
109      <path id="bootclasspath@{v}">      <path id="bootclasspath@{v}" unless:set="modules">
110        <pathelement path="${boot.jar.dir}/resources.jar"/>        <pathelement path="${boot.jar.dir}/resources.jar"/>
111        <pathelement path="${boot.jar.dir}/rt.jar"/>        <pathelement path="${boot.jar.dir}/rt.jar"/>
112        <pathelement path="${boot.jar.dir}/jsse.jar"/>        <pathelement path="${boot.jar.dir}/jsse.jar"/>
113        <pathelement path="${boot.jar.dir}/jce.jar"/>        <pathelement path="${boot.jar.dir}/jce.jar"/>
114        <pathelement path="${boot.jar.dir}/charsets.jar"/>        <pathelement path="${boot.jar.dir}/charsets.jar"/>
115      </path>      </path>
116      <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>      <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
117      </sequential>      </sequential>
118    </macrodef>    </macrodef>
119    
# Line 114  As of 2013-02, the very latest lambda 8 Line 132  As of 2013-02, the very latest lambda 8
132    <defjdklocations v="6"/>    <defjdklocations v="6"/>
133    <defjdklocations v="7"/>    <defjdklocations v="7"/>
134    <defjdklocations v="8"/>    <defjdklocations v="8"/>
135      <defjdklocations v="9"/>
136      <defjdklocations v="10"/>
137    
138    <!-- Source locations -->    <!-- Source locations -->
139    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
140    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
141    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
142    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
143    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
144      <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
145      <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
146      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
147      <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
148    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
149    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
150    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
151    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
152      <property name="4jdk8src.dir"         location="${topsrc.dir}/jdk8"/>
153    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
154    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
155    <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 158  As of 2013-02, the very latest lambda 8
158    <!-- Javadoc locations -->    <!-- Javadoc locations -->
159    <property name="docs.dir"          location="${build.dir}/docs"/>    <property name="docs.dir"          location="${build.dir}/docs"/>
160    <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>    <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
161      <property name="4jdk8docs.dir"     location="${build.4jdk8.dir}/docs"/>
162    <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>    <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
163    <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>    <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
164    <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 166  As of 2013-02, the very latest lambda 8
166    
167    <property name="dist.docs.dir"          location="${dist.dir}/docs"/>    <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
168    <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>    <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
169      <property name="dist.4jdk8docs.dir"     location="${dist.dir}/jsr166-4jdk8docs"/>
170    <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>    <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
171    <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>    <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
172    <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 175  As of 2013-02, the very latest lambda 8
175    <!-- Jar locations -->    <!-- Jar locations -->
176    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
177    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
178      <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
179    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
180    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
181    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
182    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
183    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
184    
185    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
186    <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
187    <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
188    <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
189      <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
190    <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>    <!-- The expected canonical location does not yet exist as of 2016-04 -->
191    <!-- The below does not yet exist as of 2013-01 -->    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
192    <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>
193      <!-- Default jdk doc location (latest stable release seems best) -->
194      <property name="java.docroot.url"       value="${java8.docroot.url}"/>
195    
196    <!-- Default jdk api doc location (latest stable release seems best) -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
197    <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
198      <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
199      <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
200      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
201      <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
202      <property name="java.api.url"       value="${java.docroot.url}/api/"/>
203    
204    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
205    <!-- See the docs in "jtreg -onlineHelp" -->    <!-- See the docs in "jtreg -onlineHelp" -->
206    <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"    <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
207             classpath="${lib.dir}/jtreg.jar" />             classpath="${lib.dir}/jtreg.jar" />
208    
209    <!-- Test classpath -->    <!-- Tck options; see JSR166TestCase.java
210    <path id="test.classpath">     To profile a single tck test class:
211      <pathelement location="${build.testcases.dir}"/>     ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
212      <pathelement location="${junit.jar}"/>     To stress test a single tck test class:
213    </path>     ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
214       To stress test a single tck test method:
215       ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
216      -->
217      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
218    <macrodef name="run-tck-tests">    <macrodef name="run-tck-tests">
219      <attribute name="tck.src.dir" default="${tck.src.dir}"/>      <attribute name="tck.src.dir" default="${tck.src.dir}"/>
220      <attribute name="target"/>      <attribute name="target"/>
221      <attribute name="compile-target" default="@{target}"/>      <attribute name="compile-target" default="@{target}"/>
222      <attribute name="workdir"/>      <attribute name="workdir"/>
223      <attribute name="classes"/>      <attribute name="classes"/>
224      <attribute name="jvmflags" default=""/>      <!--
225            <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/>
226        -->
227            <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
228      <element name="javac-elements" optional="true"/>      <element name="javac-elements" optional="true"/>
229    
230      <sequential>      <sequential>
231    
232        <local name="modules"/>
233        <condition property="modules">
234          <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
235        </condition>
236    
237      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
238    
239      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 197  As of 2013-02, the very latest lambda 8 Line 244  As of 2013-02, the very latest lambda 8
244             source="@{compile-target}"             source="@{compile-target}"
245             target="@{compile-target}"             target="@{compile-target}"
246             classpath="${junit.jar}"             classpath="${junit.jar}"
            bootclasspath="@{classes}:${bootclasspath@{compile-target}}"  
247             includeAntRuntime="false"             includeAntRuntime="false"
248             includeJavaRuntime="false"             includeJavaRuntime="false"
249               encoding="ASCII"
250             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
251             fork="true">             fork="true">
252    
253        <include name="*.java"/>        <include name="*.java"/>
254        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
255        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
256          <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
257          <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
258        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
259        <javac-elements/>        <javac-elements/>
260    
# Line 215  As of 2013-02, the very latest lambda 8 Line 264  As of 2013-02, the very latest lambda 8
264            failonerror="true"            failonerror="true"
265            jvm="${java@{target}}"            jvm="${java@{target}}"
266            fork="true">            fork="true">
267          <jvmarg value="-Xbootclasspath/p:@{classes}"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
268            <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
269            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
270            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
271            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
272            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
273            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
274          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
275          <sysproperty key="jsr166.profileTests"     value="${jsr166.profileTests}"/>          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
276          <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
277          <sysproperty key="jsr166.runsPerTest"      value="${jsr166.runsPerTest}"/>  
278            <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
279            <syspropertyset id="system-properties-used-by-tck">
280              <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
281              <propertyref prefix="jsr166."/>
282              <propertyref name="test.timeout.factor"/>
283            </syspropertyset>
284    
285          <classpath>          <classpath>
286            <pathelement location="${junit.jar}"/>            <pathelement location="${junit.jar}"/>
287            <pathelement location="@{workdir}/tck-classes"/>            <pathelement location="@{workdir}/tck-classes"/>
# Line 229  As of 2013-02, the very latest lambda 8 Line 291  As of 2013-02, the very latest lambda 8
291      </sequential>      </sequential>
292    </macrodef>    </macrodef>
293    
294      <!-- Define jtreg test sets for different jdk versions -->
295      <fileset dir="${jtreg9.src.dir}">
296        <patternset id="jdk9.jtreg.tests">
297          <include name="**/*.java"/>
298        </patternset>
299      </fileset>
300    
301      <fileset dir="${jtreg8.src.dir}">
302        <patternset id="jdk8.jtreg.tests">
303          <include name="**/*.java"/>
304        </patternset>
305      </fileset>
306    
307      <fileset dir="${jtreg7.src.dir}">
308        <patternset id="jdk7.jtreg.tests">
309          <include name="**/*.java"/>
310        </patternset>
311      </fileset>
312    
313      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
314      <property name="jtreg.flags" value=""/>
315    
316    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
317      <attribute name="jtreg.src.dir" default="${jtreg.src.dir}"/>      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
318      <attribute name="source" default="7"/>      <attribute name="source" default="7"/>
319      <attribute name="target"/>      <attribute name="target"/>
320      <attribute name="workdir"/>      <attribute name="workdir"/>
321      <attribute name="classes"/>      <attribute name="classes"/>
322      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
323    
324      <sequential>      <sequential>
325    
326        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
327        <property name="jtreg.verbose" value="nopass,fail,error"/>
328    
329        <local name="modules"/>
330        <condition property="modules">
331          <available file="${jdk@{target}.home}/jmods" type="dir"/>
332        </condition>
333    
334      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
335      <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}"  
336             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
337             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
338             reportDir="@{workdir}/JTreport">        <patternset refid="jdk@{target}.jtreg.tests"/>
339          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
340        <arg value="-Xbootclasspath/p:@{classes}"/>        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>
341          <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>
342        <arg value="-agentvm"/>        <arg value="-agentvm"/>
343        <arg value="-v:nopass,fail"/>        <arg value="-noreport"/>
344          <arg value="-verbose:${jtreg.verbose}"/>
345        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
346        <arg value="-automatic"/>        <arg value="-automatic"/>
347        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
348        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
349          <arg line="${jtreg.flags}"/>
350      </jtreg>      </jtreg>
351      </sequential>      </sequential>
352    </macrodef>    </macrodef>
# Line 268  As of 2013-02, the very latest lambda 8 Line 362  As of 2013-02, the very latest lambda 8
362    
363    <!-- Main targets -->    <!-- Main targets -->
364    
365      <property name="build.main.java.version" value="9"/>
366      <property name="build.main.javac" value="${javac9}"/>
367    
368    <target name="dists"    <target name="dists"
369            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
370            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
371    
372    <target name="compile"    <target name="compile"
373            depends="configure-compiler"            depends="configure-compiler"
374            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
375    
376      <mkdir dir="${build.classes.dir}"/>      <local name="modules"/>
377        <condition property="modules">
378          <and>
379            <available file="${jdk9.home}/jmods" type="dir"/>
380            <equals arg1="9" arg2="${build.main.java.version}"/>
381          </and>
382        </condition>
383    
384        <local name="destdir"/>
385        <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
386        <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
387    
388        <mkdir dir="${destdir}"/>
389    
390      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
391             destdir="${build.classes.dir}"             destdir="${destdir}"
392             debug="${build.debug}"             debug="${build.debug}"
393             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
394             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
395             classpath=""             classpath=""
396             includeAntRuntime="false"             includeAntRuntime="false"
397             includeJavaRuntime="false"             includeJavaRuntime="false"
398             executable="${javac8}"             encoding="ASCII"
399               executable="${build.main.javac}"
400             fork="true">             fork="true">
401    
402        <include name="**/*.java"/>        <include name="**/*.java"/>
403          <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>
404        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
405        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
406        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
407          <compilerarg value="-Werror"/>
408          <compilerarg value="-Xdoclint:all/protected"/>
409          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
410        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
411    
412      </javac>      </javac>
# Line 301  As of 2013-02, the very latest lambda 8 Line 415  As of 2013-02, the very latest lambda 8
415    
416    <target name="jar"    <target name="jar"
417            depends="compile"            depends="compile"
418            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
419        <local name="subdir"/>
420        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
421      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
422        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
423          <manifest>
424            <attribute name="Built-By" value="${user.name}"/>
425            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
426          </manifest>
427      </jar>      </jar>
428    </target>    </target>
429    
430    
   <target name="test"  
           depends="configure-tests, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
   
   
431    <target name="docs"    <target name="docs"
432            description="Builds javadocs for src/main to dist dir">            description="Builds javadocs for src/main to dist dir">
433    
# Line 323  As of 2013-02, the very latest lambda 8 Line 437  As of 2013-02, the very latest lambda 8
437      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
438      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
439    
440    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
441    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
442    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
443    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
444    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
445      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
446               packagenames="none"               packagenames="none"
447               link="${jdkapi8docs.url}"               link="${java9.api.url}"
448               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
449               access="${build.javadoc.access}"               access="${build.javadoc.access}"
450               sourcepath="${src.dir}:${jdk8src.dir}"               sourcepath="${src.dir}"
451               classpath=""               classpath=""
452               executable="${javadoc8}">               executable="${javadoc9}">
453        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
454          <include name="**/*.java"/>          <include name="**/*.java"/>
455        </fileset>        </fileset>
456          <arg line="-Xdocrootparent ${java9.docroot.url}"/>
457          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
458        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
459          <arg value="--patch-module=java.base=${src.dir}"/>
460        <arg value="-tag"/>        <arg value="-tag"/>
461        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
462    <!-- @apiNote currently unused -->
463    <!--       <arg value="-tag"/> -->
464    <!--       <arg value="apiNote:a:API Note:"/> -->
465          <arg value="-tag"/>
466          <arg value="implSpec:a:Implementation Requirements:"/>
467          <arg value="-tag"/>
468          <arg value="implNote:a:Implementation Note:"/>
469    <!-- tags added in jdk9: currently unused -->
470    <!--       <arg value="-tag"/> -->
471    <!--       <arg value="revised:X"/> -->
472    <!--       <arg value="-tag"/> -->
473    <!--       <arg value="spec:X"/> -->
474      </javadoc>      </javadoc>
475    </target>    </target>
476    
# Line 360  As of 2013-02, the very latest lambda 8 Line 494  As of 2013-02, the very latest lambda 8
494        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
495        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
496        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
497          <manifest>
498            <attribute name="Built-By" value="${user.name}"/>
499            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
500          </manifest>
501      </jar>      </jar>
502    </target>    </target>
503    
# Line 375  As of 2013-02, the very latest lambda 8 Line 513  As of 2013-02, the very latest lambda 8
513    <target name="dist-clean"    <target name="dist-clean"
514            description="Removes all build and distribution products">            description="Removes all build and distribution products">
515    
516        <delete dir="${build.dir}"/>
517      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
518    
519    </target>    </target>
520    
521    
   <!-- Internal targets -->  
   
   
522    <target name="dist-jar"    <target name="dist-jar"
523            depends="clean, jar">            depends="clean, jar">
524      <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 529  As of 2013-02, the very latest lambda 8
529      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
530    </target>    </target>
531    
532      <target name="tck"
533              depends="jar"
534              description="Runs tck tests for src/main directly">
535    
536        <run-tck-tests
537          target="${build.main.java.version}"
538          workdir="${build.dir}"
539          classes="${product.jar}"/>
540      </target>
541    
542      <target name="tck-parallelism-1"
543              description="Runs tck with common pool parallelism 1">
544        <antcall target="tck">
545          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
546        </antcall>
547      </target>
548    
549      <target name="tck-parallelism-0"
550              description="Runs tck with common pool parallelism 0">
551        <antcall target="tck">
552          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
553        </antcall>
554      </target>
555    
556      <target name="tck-security-manager"
557              description="Runs tck with a security manager">
558        <antcall target="tck">
559          <param name="jsr166.useSecurityManager" value="true"/>
560        </antcall>
561      </target>
562    
563      <target name="jtreg"
564              depends="jar"
565              description="Runs jtreg tests for src/main using the jtreg ant task">
566        <run-jtreg-tests
567           target="${build.main.java.version}"
568           workdir="${build.dir}"
569           classes="${product.jar}"/>
570      </target>
571    
572      <target name="test"
573              depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
574              description="Runs tck and jtreg tests for src/main">
575      </target>
576    
577    <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
578    
579    <!--     <antcall target="jtreg"> -->
580    <!--       <param name="build.main.java.version" value="8"/> -->
581    <!--       <param name="build.main.javac" value="${javac8}"/> -->
582    <!--     </antcall> -->
583    
584    <!--   </target> -->
585    
586    <!--   <target name="test89" -->
587    <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
588    
589    <!--     <antcall target="clean"/> -->
590    <!--     <antcall target="test"> -->
591    <!--       <param name="build.main.java.version" value="8"/> -->
592    <!--       <param name="build.main.javac" value="${javac8}"/> -->
593    <!--     </antcall> -->
594    
595    <target name="compile-tests"  <!--     <antcall target="clean"/> -->
596            depends="jar">  <!--     <antcall target="test"> -->
597    <!--       <param name="build.main.java.version" value="9"/> -->
598    <!--       <param name="build.main.javac" value="${javac9}"/> -->
599    <!--     </antcall> -->
600    
601      <mkdir dir="${build.testcases.dir}"/>  <!--   </target> -->
602    
603    
604    
605      <target name="configure-compiler">
606        <fail message="ant version too old">
607          <condition>
608            <not> <antversion atleast="1.9.1"/> </not>
609          </condition>
610        </fail>
611    
612        <property name="unchecked.option" value="-Xlint:unchecked"/>
613    
614        <condition property="warnunchecked.arg" value="${unchecked.option}">
615          <istrue value="${build.warnunchecked}"/>
616        </condition>
617    
618      <javac srcdir="${tck.src.dir}"      <property name="warnunchecked.arg" value=""/>
619             destdir="${build.testcases.dir}"  
620    
621        <!-- Common options in javac invocations -->
622        <property name="build.args" value="${warnunchecked.arg}"/>
623    
624      </target>
625    
626    
627    
628      <!-- Various demos and test programs -->
629    
630    
631      <!-- description="Benchmark from Doug Lea's AQS paper" -->
632      <target name="loops" depends="configure-compiler">
633    
634        <mkdir dir="${build.loops.dir}"/>
635    
636        <javac srcdir="${loops.src.dir}"
637              destdir="${build.loops.dir}"
638                debug="${build.debug}"
639           debuglevel="${build.debuglevel}"
640          deprecation="${build.deprecation}"
641               source="${build.sourcelevel}"
642               target="${build.sourcelevel}"
643             encoding="ASCII"
644                 fork="true">
645    
646          <compilerarg line="${build.args}"/>
647          <classpath refid="loops.classpath"/>
648          <compilerarg value="-XDignore.symbol.file=true"/>
649    
650        </javac>
651    
652        <java classname="ALoops" fork="true">
653          <classpath refid="loops.classpath"/>
654        </java>
655    
656      </target>
657    
658    
659      <target name="compile-test-loops" depends="jar"
660              description="compile all the perf tests in src/test/loops">
661    
662        <mkdir dir="${build.dir}/test/loops"/>
663    
664        <javac srcdir="${basedir}/src/test/loops"
665               destdir="${build.dir}/test/loops"
666             debug="${build.debug}"             debug="${build.debug}"
667             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
668             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
            source="6"  
            classpath="${junit.jar}"  
            bootclasspath="@{product.jar}:${bootclasspath6}"  
669             includeAntRuntime="false"             includeAntRuntime="false"
670             includeJavaRuntime="false"             includeJavaRuntime="false"
671             executable="${javac8}"             encoding="ASCII"
672               executable="${javac9}"
673             fork="true">             fork="true">
674    
675        <include name="**/*.java"/>        <include name="*.java"/>
676        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
677        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
678          <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
679        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
680    
681      </javac>      </javac>
682    
683      <javac srcdir="${test.src.dir}"    </target>
684             destdir="${build.testcases.dir}"  
685    
686      <!-- jsr166 4jdk8 -->
687    
688      <target name="4jdk8compile"
689              depends="configure-compiler"
690              description="Compiles src/jdk8 sources, targeting jdk8">
691    
692        <mkdir dir="${build.4jdk8.classes.dir}"/>
693    
694        <javac srcdir="${4jdk8src.dir}"
695               destdir="${build.4jdk8.classes.dir}"
696             debug="${build.debug}"             debug="${build.debug}"
697             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
698             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
699             source="6"             source="8"
700               target="8"
701             classpath=""             classpath=""
702             bootclasspath="@{product.jar}:${bootclasspath6}"             bootclasspath="${bootclasspath8}"
703             includeAntRuntime="false"             includeAntRuntime="false"
704             includeJavaRuntime="false"             includeJavaRuntime="false"
705               encoding="ASCII"
706             executable="${javac8}"             executable="${javac8}"
707             fork="true">             fork="true">
708    
709        <include name="jsr166/test/**/*.java"/>        <include name="**/*.java"/>
710          <compilerarg value="-Xprefer:source"/>
711        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
712        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>        <compilerarg value="-Xlint:all"/>
713          <compilerarg value="-Werror"/>
714        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
715    
716      </javac>      </javac>
717      </target>
718    
719  <!--    <target name="4jdk8doclint"
720      <javac srcdir="${jtreg.src.dir}"            depends="configure-compiler"
721            destdir="${build.testcases.dir}"            description="Finds doclint warnings">
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
722    
723        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>      <mkdir dir="${build.4jdk8.classes.dir}"/>
724    
725        <javac srcdir="${4jdk8src.dir}"
726               destdir="${build.4jdk8.classes.dir}"
727               debug="${build.debug}"
728               debuglevel="${build.debuglevel}"
729               deprecation="${build.deprecation}"
730               source="8"
731               target="8"
732               classpath=""
733               bootclasspath="${bootclasspath8}"
734               includeAntRuntime="false"
735               includeJavaRuntime="false"
736               encoding="ASCII"
737               executable="${javac8}"
738               fork="true">
739    
740          <include name="**/*.java"/>
741          <compilerarg value="-Xprefer:source"/>
742        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
743          <compilerarg value="-Xlint:all"/>
744          <compilerarg value="-Xdoclint:all/protected"/>
745        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
746    
747      </javac>      </javac>
 -->  
   
748    </target>    </target>
749    
   <target name="test-tck"  
           depends="jar"  
           description="Runs tck tests for main directly">  
750    
751      <run-tck-tests    <target name="4jdk8jar"
752        target="8"            depends="4jdk8compile"
753        workdir="${build.dir}"            description="Builds library jar from compiled sources">
       classes="${product.jar}"/>  
   </target>  
754    
755    <target name="test-jtreg"      <jar destfile="${4jdk8product.jar}">
756            depends="jar"        <fileset dir="${build.4jdk8.classes.dir}"/>
757            description="Runs jtreg tests for main using the jtreg ant task">        <manifest>
758      <run-jtreg-tests          <attribute name="Built-By" value="${user.name}"/>
759         target="8"          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
760         workdir="${build.dir}"        </manifest>
761         classes="${product.jar}"/>      </jar>
   </target>  
762    
   <target name="test-ng"  
           depends="test-tck, test-jtreg"  
           description="Runs tck and jtreg tests for main">  
763    </target>    </target>
764    
   <target name="run-tests"  
           depends="compile-tests">  
765    
766      <!-- May be overridden by user.properties -->    <target name="4jdk8-tck"
767      <property name="testcase" value="*"/>            depends="4jdk8jar"
768              description="Runs tck tests for jsr166-4jdk8 directly">
769    
770      <mkdir dir="${build.reports.dir}"/>      <run-tck-tests
771          target="8"
772      <junit printsummary="true"        workdir="${build.4jdk8.dir}"
773               showoutput="true"        classes="${4jdk8product.jar}">
774            errorProperty="junit.failed"        <javac-elements>
775          failureProperty="junit.failed"          <!-- JDK9+ test classes -->
776                      dir="${build.reports.dir}"          <exclude name="*9Test.java"/>
777                      jvm="${java8}"          <exclude name="*10Test.java"/>
778                     fork="true">        </javac-elements>
779        </run-tck-tests>
780        <jvmarg value="-Xbootclasspath/p:${product.jar}"/>    </target>
       <jvmarg value="-server"/>  
       <jvmarg value="-showversion"/>  
   
       <classpath refid="test.classpath"/>  
781    
       <formatter type="xml"/>  
782    
783        <batchtest todir="${build.reports.dir}" unless="no.test.tck">    <target name="4jdk8-jtreg"
784          <fileset dir="${tck.src.dir}">            depends="4jdk8jar"
785            <include name="**/${testcase}Test.java"/>            description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
786          </fileset>      <run-jtreg-tests
787        </batchtest>         target="8"
788           workdir="${build.4jdk8.dir}"
789        <batchtest todir="${build.reports.dir}" if="do.test.old">         classes="${4jdk8product.jar}"/>
790          <fileset dir="${test.src.dir}">    </target>
           <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>  
 -->  
791    
     </junit>  
792    
793      <target name="4jdk8-test"
794              depends="4jdk8-tck, 4jdk8-jtreg"
795              description="Runs tck and jtreg tests for jsr166-4jdk8">
796    </target>    </target>
797    
798    
799    <target name="report-tests"    <target name="4jdk8docs"
800            depends="run-tests">            description="Builds javadocs for src/jdk8 to dist dir">
801    
802      <!-- Sets junit.report.format to frames if redirection is present,      <delete dir="${4jdk8docs.dir}"/>
803           otherwise sets it to noframes. -->      <mkdir dir="${4jdk8docs.dir}"/>
     <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"/>  
804    
805        <javadoc destdir="${4jdk8docs.dir}"
806                 packagenames="none"
807                 link="${java8.api.url}"
808                 overview="${4jdk8src.dir}/intro.html"
809                 access="${build.javadoc.access}"
810                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
811                 classpath=""
812                 executable="${javadoc8}"
813                 failonerror = "true">
814          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
815            <include name="**/*.java"/>
816          </fileset>
817          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
818          <arg value="-XDignore.symbol.file=true"/>
819          <arg value="-tag"/>
820          <arg value="${javadoc.jls.option}"/>
821    <!-- @apiNote currently unused -->
822    <!--       <arg value="-tag"/> -->
823    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
824          <arg value="-tag"/>
825          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
826          <arg value="-tag"/>
827          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
828        </javadoc>
829    </target>    </target>
830    
831    
832    <target name="configure-compiler">    <target name="4jdk8dist"
833              depends="4jdk8dist-jar, 4jdk8dist-docs"
834      <property name="unchecked.option" value="-Xlint:unchecked"/>            description="Puts all distributable products in single hierarchy"/>
   
     <condition property="warnunchecked.arg" value="${unchecked.option}">  
       <istrue value="${build.warnunchecked}"/>  
     </condition>  
835    
     <property name="warnunchecked.arg" value=""/>  
836    
837      <target name="4jdk8clean"
838              description="Removes all 4jdk8 build products">
839    
840      <!-- Common options in javac invocations -->      <delete dir="${build.4jdk8.dir}"/>
     <property name="build.args" value="${warnunchecked.arg}"/>  
841    
842    </target>    </target>
843    
844    
845    <target name="configure-tests"    <target name="4jdk8dist-jar"
846         depends="configure-compiler">            depends="4jdk8clean, 4jdk8jar">
847        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
848      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->    </target>
     <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"/>  
849    
     <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"  
           unless="xalan.available"/>  
     -->  
850    
851      <target name="4jdk8dist-docs"
852              depends="4jdk8clean, 4jdk8docs">
853        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
854    </target>    </target>
855    
856    
   <!-- Various demos and test programs -->  
857    
858      <!-- jsr166 4jdk7 -->
859    
860    <target name="loops" depends="configure-compiler"    <target name="4jdk7compile"
861            description="Benchmark from Doug Lea's AQS paper">            depends="configure-compiler"
862              description="Compiles src/jdk7 sources, targeting jdk7">
863    
864      <mkdir dir="${build.loops.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
865    
866      <javac srcdir="${loops.src.dir}"      <javac srcdir="${4jdk7src.dir}"
867            destdir="${build.loops.dir}"             destdir="${build.4jdk7.classes.dir}"
868              debug="${build.debug}"             debug="${build.debug}"
869         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
870        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
871             source="${build.sourcelevel}"             source="6"
872               fork="true">             target="6"
873               classpath=""
874               bootclasspath="${bootclasspath6}"
875               includeAntRuntime="false"
876               includeJavaRuntime="false"
877               encoding="ASCII"
878               executable="${javac7}"
879               fork="true">
880    
881        <compilerarg line="${build.args}"/>        <include name="**/*.java"/>
882        <classpath refid="loops.classpath"/>        <compilerarg value="-Xprefer:source"/>
883        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
884          <compilerarg value="-Xlint:all"/>
885          <compilerarg value="-Werror"/>
886          <compilerarg line="${build.args}"/>
887    
888      </javac>      </javac>
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   
889    </target>    </target>
890    
891      <target name="4jdk7doclint"
   <!-- jsr166 4jdk7 -->  
   
   <target name="4jdk7compile"  
892            depends="configure-compiler"            depends="configure-compiler"
893            description="Compiles src/jdk7 sources, targeting jdk7">            description="Finds doclint warnings">
894    
895      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
896    
# Line 638  As of 2013-02, the very latest lambda 8 Line 900  As of 2013-02, the very latest lambda 8
900             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
901             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
902             source="6"             source="6"
903               target="6"
904             classpath=""             classpath=""
905             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
906             includeAntRuntime="false"             includeAntRuntime="false"
907             includeJavaRuntime="false"             includeJavaRuntime="false"
908             executable="${javac7}"             encoding="ASCII"
909               executable="${javac8}"
910             fork="true">             fork="true">
911    
912        <include name="**/*.java"/>        <include name="**/*.java"/>
913        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
914        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
915        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
916          <compilerarg value="-Xdoclint:all/protected"/>
917        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
918    
919      </javac>      </javac>
# Line 661  As of 2013-02, the very latest lambda 8 Line 926  As of 2013-02, the very latest lambda 8
926    
927      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
928        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
929          <manifest>
930            <attribute name="Built-By" value="${user.name}"/>
931            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
932          </manifest>
933      </jar>      </jar>
934    
935    </target>    </target>
936    
937    
938    <target name="4jdk7-test-tck"    <target name="4jdk7-tck"
939            depends="4jdk7jar"            depends="4jdk7jar"
940            description="Runs tck tests for jsr166-4jdk7 directly">            description="Runs tck tests for jsr166-4jdk7 directly">
941    
# Line 677  As of 2013-02, the very latest lambda 8 Line 946  As of 2013-02, the very latest lambda 8
946        <javac-elements>        <javac-elements>
947          <!-- JDK8+ test classes -->          <!-- JDK8+ test classes -->
948          <exclude name="*8Test.java"/>          <exclude name="*8Test.java"/>
949            <exclude name="*9Test.java"/>
950            <exclude name="*10Test.java"/>
951          <exclude name="DoubleAccumulatorTest.java"/>          <exclude name="DoubleAccumulatorTest.java"/>
952          <exclude name="DoubleAdderTest.java"/>          <exclude name="DoubleAdderTest.java"/>
953          <exclude name="LongAccumulatorTest.java"/>          <exclude name="LongAccumulatorTest.java"/>
954          <exclude name="LongAdderTest.java"/>          <exclude name="LongAdderTest.java"/>
955          <exclude name="CompletableFutureTest.java"/>          <exclude name="CompletableFutureTest.java"/>
956            <exclude name="SplittableRandomTest.java"/>
957          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
958            <exclude name="SubmissionPublisherTest.java"/>
959        </javac-elements>        </javac-elements>
960      </run-tck-tests>      </run-tck-tests>
961    </target>    </target>
962    
963    
964    <target name="4jdk7-test-tck-junit"    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
965            depends="4jdk7compile"    <target name="4jdk7-tck-junit"
966            description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">            depends="4jdk7compile">
967    
968      <junit printsummary="true"      <junit printsummary="true"
969             showoutput="true"             showoutput="true"
# Line 716  As of 2013-02, the very latest lambda 8 Line 989  As of 2013-02, the very latest lambda 8
989      </junit>      </junit>
990    </target>    </target>
991    
992    <target name="4jdk7-test-jtreg"    <target name="4jdk7-jtreg"
993            depends="4jdk7jar"            depends="4jdk7jar"
994            description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">            description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
995      <run-jtreg-tests      <run-jtreg-tests
# Line 727  As of 2013-02, the very latest lambda 8 Line 1000  As of 2013-02, the very latest lambda 8
1000    
1001    
1002    <target name="4jdk7-test"    <target name="4jdk7-test"
1003            depends="4jdk7-test-tck, 4jdk7-test-jtreg"            depends="4jdk7-tck, 4jdk7-jtreg"
1004            description="Runs tck and jtreg tests for jsr166-4jdk7">            description="Runs tck and jtreg tests for jsr166-4jdk7">
1005    </target>    </target>
1006    
# Line 740  As of 2013-02, the very latest lambda 8 Line 1013  As of 2013-02, the very latest lambda 8
1013    
1014      <javadoc destdir="${4jdk7docs.dir}"      <javadoc destdir="${4jdk7docs.dir}"
1015               packagenames="none"               packagenames="none"
1016               link="${jdkapi7docs.url}"               link="${java7.api.url}"
1017               overview="${4jdk7src.dir}/intro.html"               overview="${4jdk7src.dir}/intro.html"
1018               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1019               sourcepath="${4jdk7src.dir}:${jdk7src.dir}"               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1020               classpath=""               classpath=""
1021               executable="${javadoc7}">               executable="${javadoc7}"
1022                 failonerror = "true">
1023        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1024          <include name="**/*.java"/>          <include name="**/*.java"/>
1025        </fileset>        </fileset>
1026          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
1027        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1028      </javadoc>      </javadoc>
1029    </target>    </target>
# Line 767  As of 2013-02, the very latest lambda 8 Line 1042  As of 2013-02, the very latest lambda 8
1042    </target>    </target>
1043    
1044    
   <target name="4jdk7dist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
1045    <target name="4jdk7dist-jar"    <target name="4jdk7dist-jar"
1046            depends="4jdk7clean, 4jdk7jar">            depends="4jdk7clean, 4jdk7jar">
1047      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
# Line 800  As of 2013-02, the very latest lambda 8 Line 1070  As of 2013-02, the very latest lambda 8
1070             classpath=""             classpath=""
1071             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1072             source="5"             source="5"
1073               target="5"
1074             includeAntRuntime="false"             includeAntRuntime="false"
1075             includeJavaRuntime="false"             includeJavaRuntime="false"
1076               encoding="ASCII"
1077             executable="${javac7}"             executable="${javac7}"
1078             fork="true">             fork="true">
1079    
1080        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1081        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1082        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1083          <compilerarg value="-Werror"/>
1084        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1085    
1086      </javac>      </javac>
# Line 820  As of 2013-02, the very latest lambda 8 Line 1093  As of 2013-02, the very latest lambda 8
1093    
1094      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1095        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1096          <manifest>
1097            <attribute name="Built-By" value="${user.name}"/>
1098            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1099          </manifest>
1100      </jar>      </jar>
1101    
1102    </target>    </target>
# Line 833  As of 2013-02, the very latest lambda 8 Line 1110  As of 2013-02, the very latest lambda 8
1110    
1111      <javadoc destdir="${jsr166xdocs.dir}"      <javadoc destdir="${jsr166xdocs.dir}"
1112               packagenames="jsr166x.*"               packagenames="jsr166x.*"
1113               link="${jdkapidocs.url}"               link="${java.api.url}"
1114               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1115               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1116               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1117               source="5"               source="5"
1118               executable="${javadoc7}">               executable="${javadoc7}"
1119                 failonerror = "true">
1120          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1121        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1122    
1123      </javadoc>      </javadoc>
# Line 858  As of 2013-02, the very latest lambda 8 Line 1137  As of 2013-02, the very latest lambda 8
1137    </target>    </target>
1138    
1139    
   <target name="jsr166xdist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
   
1140    <target name="jsr166xdist-jar"    <target name="jsr166xdist-jar"
1141            depends="jsr166xclean, jsr166xjar">            depends="jsr166xclean, jsr166xjar">
1142      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
# Line 889  As of 2013-02, the very latest lambda 8 Line 1162  As of 2013-02, the very latest lambda 8
1162             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1163             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1164             source="6"             source="6"
1165               target="6"
1166             classpath=""             classpath=""
1167             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1168             includeAntRuntime="false"             includeAntRuntime="false"
1169             includeJavaRuntime="false"             includeJavaRuntime="false"
1170               encoding="ASCII"
1171             executable="${javac7}"             executable="${javac7}"
1172             fork="true">             fork="true">
1173    
1174        <include name="jsr166y/**/*.java"/>        <include name="jsr166y/**/*.java"/>
1175        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1176        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1177          <compilerarg value="-Werror"/>
1178        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1179    
1180      </javac>      </javac>
# Line 911  As of 2013-02, the very latest lambda 8 Line 1187  As of 2013-02, the very latest lambda 8
1187    
1188      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1189        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1190          <manifest>
1191            <attribute name="Built-By" value="${user.name}"/>
1192            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1193          </manifest>
1194      </jar>      </jar>
1195    
1196    </target>    </target>
# Line 924  As of 2013-02, the very latest lambda 8 Line 1204  As of 2013-02, the very latest lambda 8
1204    
1205      <javadoc destdir="${jsr166ydocs.dir}"      <javadoc destdir="${jsr166ydocs.dir}"
1206               packagenames="jsr166y.*"               packagenames="jsr166y.*"
1207               link="${jdkapidocs.url}"               link="${java.api.url}"
1208               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1209               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1210               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1211               source="6"               source="6"
1212               executable="${javadoc7}">               executable="${javadoc7}"
1213                 failonerror = "true">
1214          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1215        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1216    
1217      </javadoc>      </javadoc>
# Line 949  As of 2013-02, the very latest lambda 8 Line 1231  As of 2013-02, the very latest lambda 8
1231    </target>    </target>
1232    
1233    
   <target name="jsr166ydist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
1234    <target name="jsr166ydist-jar"    <target name="jsr166ydist-jar"
1235            depends="jsr166yclean, jsr166yjar">            depends="jsr166yclean, jsr166yjar">
1236      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
# Line 982  As of 2013-02, the very latest lambda 8 Line 1259  As of 2013-02, the very latest lambda 8
1259             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1260             classpath=""             classpath=""
1261             source="6"             source="6"
1262               target="6"
1263             includeAntRuntime="false"             includeAntRuntime="false"
1264             includeJavaRuntime="false"             includeJavaRuntime="false"
1265               encoding="ASCII"
1266             executable="${javac7}"             executable="${javac7}"
1267             fork="true">             fork="true">
1268    
1269        <include name="extra166y/**/*.java"/>        <include name="extra166y/**/*.java"/>
1270        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1271        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1272          <compilerarg value="-Werror"/>
1273        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1274    
1275      </javac>      </javac>
# Line 1002  As of 2013-02, the very latest lambda 8 Line 1282  As of 2013-02, the very latest lambda 8
1282    
1283      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1284        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1285          <manifest>
1286            <attribute name="Built-By" value="${user.name}"/>
1287            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1288          </manifest>
1289      </jar>      </jar>
1290    
1291    </target>    </target>
# Line 1015  As of 2013-02, the very latest lambda 8 Line 1299  As of 2013-02, the very latest lambda 8
1299    
1300      <javadoc destdir="${extra166ydocs.dir}"      <javadoc destdir="${extra166ydocs.dir}"
1301               packagenames="extra166y.*"               packagenames="extra166y.*"
1302               link="${jdkapidocs.url}"               link="${java.api.url}"
1303               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1304               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1305               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1306               source="6"               source="6"
1307               executable="${javadoc7}">               executable="${javadoc7}">
1308          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1309        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1310    
1311      </javadoc>      </javadoc>
# Line 1040  As of 2013-02, the very latest lambda 8 Line 1325  As of 2013-02, the very latest lambda 8
1325    </target>    </target>
1326    
1327    
   <target name="extra166ydist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
1328    <target name="extra166ydist-jar"    <target name="extra166ydist-jar"
1329            depends="extra166yclean, extra166yjar">            depends="extra166yclean, extra166yjar">
1330      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
# Line 1057  As of 2013-02, the very latest lambda 8 Line 1337  As of 2013-02, the very latest lambda 8
1337    
1338    <!-- jsr166e -->    <!-- jsr166e -->
1339    
1340      <property name="build.jsr166e.java.version" value="6"/>
1341      <property name="build.jsr166e.javac" value="${javac6}"/>
1342    
1343    <target name="jsr166ecompile"    <target name="jsr166ecompile"
1344            depends="configure-compiler"            depends="configure-compiler"
1345            description="Compiles jsr166e sources">            description="Compiles jsr166e sources">
# Line 1068  As of 2013-02, the very latest lambda 8 Line 1351  As of 2013-02, the very latest lambda 8
1351             debug="${build.debug}"             debug="${build.debug}"
1352             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1353             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1354             source="7"             source="${build.jsr166e.java.version}"
1355               target="${build.jsr166e.java.version}"
1356             classpath=""             classpath=""
1357             includeAntRuntime="false"             includeAntRuntime="false"
1358             includeJavaRuntime="false"             includeJavaRuntime="false"
1359             executable="${javac7}"             executable="${build.jsr166e.javac}"
1360             fork="true">             fork="true">
1361    
1362        <include name="jsr166e/**/*.java"/>        <include name="jsr166e/**/*.java"/>
1363        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1364        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1365          <compilerarg value="-Werror"/>
1366        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1367    
1368      </javac>      </javac>
1369    </target>    </target>
1370    
1371      <!-- jsr166e: find doclint errors -->
1372      <target name="jsr166edoclint">
1373    
1374        <mkdir dir="${build.jsr166e.classes.dir}"/>
1375    
1376        <javac srcdir="${topsrc.dir}"
1377               destdir="${build.jsr166e.classes.dir}"
1378               debug="${build.debug}"
1379               debuglevel="${build.debuglevel}"
1380               deprecation="${build.deprecation}"
1381               source="${build.jsr166e.java.version}"
1382               target="${build.jsr166e.java.version}"
1383               classpath=""
1384               bootclasspath="${bootclasspath6}"
1385               includeAntRuntime="false"
1386               includeJavaRuntime="false"
1387               executable="${javac8}"
1388               fork="true">
1389    
1390          <include name="jsr166e/**/*.java"/>
1391          <compilerarg value="-XDignore.symbol.file=true"/>
1392          <compilerarg value="-Xlint:all"/>
1393          <compilerarg value="-Werror"/>
1394          <compilerarg value="-Xdoclint:all/protected"/>
1395    
1396        </javac>
1397      </target>
1398    
1399    
1400    <target name="jsr166ejar"    <target name="jsr166ejar"
1401            depends="jsr166ecompile"            depends="jsr166ecompile"
# Line 1090  As of 2013-02, the very latest lambda 8 Line 1403  As of 2013-02, the very latest lambda 8
1403    
1404      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1405        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1406          <manifest>
1407            <attribute name="Built-By" value="${user.name}"/>
1408            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1409          </manifest>
1410      </jar>      </jar>
1411    
1412    </target>    </target>
# Line 1103  As of 2013-02, the very latest lambda 8 Line 1420  As of 2013-02, the very latest lambda 8
1420    
1421      <javadoc destdir="${jsr166edocs.dir}"      <javadoc destdir="${jsr166edocs.dir}"
1422               packagenames="jsr166e.*"               packagenames="jsr166e.*"
1423               link="${jdkapidocs.url}"               link="${java.api.url}"
1424               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1425               sourcepath="${topsrc.dir}:${jdk7src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1426               source="7"               source="${build.jsr166e.java.version}"
1427               executable="${javadoc7}">               executable="${javadoc7}"
1428                 failonerror = "true">
1429          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1430        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1431    
1432      </javadoc>      </javadoc>
1433    </target>    </target>
1434    
1435    
1436    <target name="jsr166e-test-tck"    <target name="jsr166e-tck-one-java-version"
1437            depends="jsr166ejar"            depends="jsr166ejar">
1438            description="Runs tck tests for jsr166e">  
1439        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1440    
1441      <run-tck-tests      <run-tck-tests
1442        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1443        target="7"        target="${build.jsr166e.java.version}"
1444        workdir="${build.jsr166e.dir}"        workdir="${build.jsr166e.dir}"
1445        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1446    </target>    </target>
1447    
1448      <target name="jsr166e-tck"
1449              description="Runs tck tests for jsr166e for multiple java versions">
1450    
1451    <!--     <antcall target="clean"/> -->
1452    <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1453    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1454    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1455    <!--     </antcall> -->
1456    
1457        <antcall target="clean"/>
1458        <antcall target="jsr166e-tck-one-java-version">
1459          <param name="build.jsr166e.java.version" value="7"/>
1460          <param name="build.jsr166e.javac" value="${javac7}"/>
1461        </antcall>
1462    
1463        <antcall target="clean"/>
1464        <antcall target="jsr166e-tck-one-java-version">
1465          <param name="build.jsr166e.java.version" value="6"/>
1466          <param name="build.jsr166e.javac" value="${javac6}"/>
1467        </antcall>
1468      </target>
1469    
1470    
1471      <target name="jsr166e-test"
1472              depends="jsr166e-tck"
1473              description="Runs all tests for jsr166e">
1474      </target>
1475    
1476    <target name="jsr166edist"    <target name="jsr166edist"
1477            depends="jsr166edist-jar, jsr166edist-docs"            depends="jsr166edist-jar, jsr166edist-docs"
# Line 1137  As of 2013-02, the very latest lambda 8 Line 1484  As of 2013-02, the very latest lambda 8
1484    </target>    </target>
1485    
1486    
   <target name="jsr166edist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
1487    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1488            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1489      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
# Line 1157  As of 2013-02, the very latest lambda 8 Line 1499  As of 2013-02, the very latest lambda 8
1499    
1500    <target name="lint">    <target name="lint">
1501      <antcall target="dists">      <antcall target="dists">
1502          <param name="build.javadoc.access" value="public"/>
1503        </antcall>
1504      </target>
1505    
1506    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1507      <target name="lint-private">
1508        <antcall target="dist">
1509        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1510      </antcall>      </antcall>
1511    </target>    </target>
1512    
1513    <!-- ==============================================================
1514      Running guava tests against jsr166 code
1515    =================================================================== -->
1516    
1517    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1518    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1519    <!-- <property name="guava.version" value="21.0"/> -->
1520    
1521    <!-- HOWTO debug print a path id -->
1522    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1523    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1524    
1525    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1526    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1527    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1528    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1529    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1530    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1531    
1532    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1533    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1534    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1535    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1536    
1537    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1538    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1539    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1540    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1541    
1542    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1543    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1544    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1545    
1546      <target name="init-ivy">
1547        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1548             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1549        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1550                 classpath="${build.dir}/ivy.jar"/>
1551      </target>
1552    
1553      <target name="guava-tests" depends="jar, init-ivy"
1554              description="Guava tests run against jsr166 collections">
1555        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1556        <mkdir dir="${guava.dir}"/>
1557        <ivy:retrieve pathid="guava.testlib.classpath"
1558          type="jar,bundle" inline="true" conf="default,master"
1559          pattern="${guava.dir}/[artifact].[ext]"
1560          organisation="com.google.guava" module="guava-testlib"/>
1561        <property name="guava.version" value="21.0"/>
1562        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1563             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1564        <junit printsummary="true" showoutput="true" haltonfailure="true"
1565               jvm="${java9}" fork="true">
1566          <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1567          <formatter type="brief"/>
1568          <classpath>
1569            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1570            <path refid="guava.testlib.classpath"/>
1571          </classpath>
1572    
1573          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1574          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1575        </junit>
1576      </target>
1577    
1578  </project>  </project>

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

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