/[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.238 by jsr166, Fri Mar 24 16:33:02 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        <local name="use-doclint"/>
238        <condition property="use-doclint">
239          <not> <equals arg1="@{target}" arg2="7"/> </not>
240        </condition>
241    
242      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
243    
244      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 197  As of 2013-02, the very latest lambda 8 Line 249  As of 2013-02, the very latest lambda 8
249             source="@{compile-target}"             source="@{compile-target}"
250             target="@{compile-target}"             target="@{compile-target}"
251             classpath="${junit.jar}"             classpath="${junit.jar}"
            bootclasspath="@{classes}:${bootclasspath@{compile-target}}"  
252             includeAntRuntime="false"             includeAntRuntime="false"
253             includeJavaRuntime="false"             includeJavaRuntime="false"
254               encoding="ASCII"
255             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
256             fork="true">             fork="true">
257    
258        <include name="*.java"/>        <include name="*.java"/>
259        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
260        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
261          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
262          <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
263          <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
264        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
265        <javac-elements/>        <javac-elements/>
266    
# Line 215  As of 2013-02, the very latest lambda 8 Line 270  As of 2013-02, the very latest lambda 8
270            failonerror="true"            failonerror="true"
271            jvm="${java@{target}}"            jvm="${java@{target}}"
272            fork="true">            fork="true">
273          <jvmarg value="-Xbootclasspath/p:@{classes}"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
274            <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
275            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
276            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
278            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
279            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
280          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
281          <sysproperty key="jsr166.profileTests"     value="${jsr166.profileTests}"/>          <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
282          <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>          <jvmarg line="${vmoptions}" if:set="vmoptions"/>
283          <sysproperty key="jsr166.runsPerTest"      value="${jsr166.runsPerTest}"/>  
284            <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
285            <syspropertyset id="system-properties-used-by-tck">
286              <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
287              <propertyref prefix="jsr166."/>
288              <propertyref name="test.timeout.factor"/>
289            </syspropertyset>
290    
291          <classpath>          <classpath>
292            <pathelement location="${junit.jar}"/>            <pathelement location="${junit.jar}"/>
293            <pathelement location="@{workdir}/tck-classes"/>            <pathelement location="@{workdir}/tck-classes"/>
# Line 229  As of 2013-02, the very latest lambda 8 Line 297  As of 2013-02, the very latest lambda 8
297      </sequential>      </sequential>
298    </macrodef>    </macrodef>
299    
300      <!-- Define jtreg test sets for different jdk versions -->
301      <fileset dir="${jtreg9.src.dir}">
302        <patternset id="jdk9.jtreg.tests">
303          <include name="**/*.java"/>
304        </patternset>
305      </fileset>
306    
307      <fileset dir="${jtreg8.src.dir}">
308        <patternset id="jdk8.jtreg.tests">
309          <include name="**/*.java"/>
310        </patternset>
311      </fileset>
312    
313      <fileset dir="${jtreg7.src.dir}">
314        <patternset id="jdk7.jtreg.tests">
315          <include name="**/*.java"/>
316        </patternset>
317      </fileset>
318    
319      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
320      <property name="jtreg.flags" value=""/>
321    
322    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
323      <attribute name="jtreg.src.dir" default="${jtreg.src.dir}"/>      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
324      <attribute name="source" default="7"/>      <attribute name="source" default="7"/>
325      <attribute name="target"/>      <attribute name="target"/>
326      <attribute name="workdir"/>      <attribute name="workdir"/>
327      <attribute name="classes"/>      <attribute name="classes"/>
328      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
329    
330      <sequential>      <sequential>
331    
332        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
333        <property name="jtreg.verbose" value="nopass,fail,error"/>
334    
335        <local name="modules"/>
336        <condition property="modules">
337          <available file="${jdk@{target}.home}/jmods" type="dir"/>
338        </condition>
339    
340      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
341      <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}"  
342             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
343             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
344             reportDir="@{workdir}/JTreport">        <patternset refid="jdk@{target}.jtreg.tests"/>
345          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
346        <arg value="-Xbootclasspath/p:@{classes}"/>        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>
347          <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>
348        <arg value="-agentvm"/>        <arg value="-agentvm"/>
349        <arg value="-v:nopass,fail"/>        <arg value="-noreport"/>
350          <arg value="-verbose:${jtreg.verbose}"/>
351        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
352        <arg value="-automatic"/>        <arg value="-automatic"/>
353        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
354        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
355          <arg line="${jtreg.flags}"/>
356      </jtreg>      </jtreg>
357      </sequential>      </sequential>
358    </macrodef>    </macrodef>
# Line 268  As of 2013-02, the very latest lambda 8 Line 368  As of 2013-02, the very latest lambda 8
368    
369    <!-- Main targets -->    <!-- Main targets -->
370    
371      <property name="build.main.java.version" value="9"/>
372      <property name="build.main.javac" value="${javac9}"/>
373    
374    <target name="dists"    <target name="dists"
375            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
376            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
377    
378    <target name="compile"    <target name="compile"
379            depends="configure-compiler"            depends="configure-compiler"
380            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
381    
382      <mkdir dir="${build.classes.dir}"/>      <local name="modules"/>
383        <condition property="modules">
384          <and>
385            <available file="${jdk9.home}/jmods" type="dir"/>
386            <equals arg1="9" arg2="${build.main.java.version}"/>
387          </and>
388        </condition>
389    
390        <local name="destdir"/>
391        <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
392        <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
393    
394        <mkdir dir="${destdir}"/>
395    
396      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
397             destdir="${build.classes.dir}"             destdir="${destdir}"
398             debug="${build.debug}"             debug="${build.debug}"
399             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
400             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
401             classpath=""             classpath=""
402             includeAntRuntime="false"             includeAntRuntime="false"
403             includeJavaRuntime="false"             includeJavaRuntime="false"
404             executable="${javac8}"             encoding="ASCII"
405               executable="${build.main.javac}"
406             fork="true">             fork="true">
407    
408        <include name="**/*.java"/>        <include name="**/*.java"/>
409          <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>
410        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
411        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
412        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
413          <compilerarg value="-Werror"/>
414          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
415          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
416        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
417    
418      </javac>      </javac>
# Line 301  As of 2013-02, the very latest lambda 8 Line 421  As of 2013-02, the very latest lambda 8
421    
422    <target name="jar"    <target name="jar"
423            depends="compile"            depends="compile"
424            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
425        <local name="subdir"/>
426        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
427      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
428        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
429          <manifest>
430            <attribute name="Built-By" value="${user.name}"/>
431            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
432          </manifest>
433      </jar>      </jar>
434    </target>    </target>
435    
436    
   <target name="test"  
           depends="configure-tests, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
   
   
437    <target name="docs"    <target name="docs"
438            description="Builds javadocs for src/main to dist dir">            description="Builds javadocs for src/main to dist dir">
439    
# Line 323  As of 2013-02, the very latest lambda 8 Line 443  As of 2013-02, the very latest lambda 8
443      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
444      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
445    
446    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
447    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
448    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
449    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
450    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
451      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
452               packagenames="none"               packagenames="none"
453               link="${jdkapi8docs.url}"               link="${java9.api.url}"
454               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
455               access="${build.javadoc.access}"               access="${build.javadoc.access}"
456               sourcepath="${src.dir}:${jdk8src.dir}"               sourcepath="${src.dir}"
457               classpath=""               classpath=""
458               executable="${javadoc8}">               executable="${javadoc9}">
459        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
460          <include name="**/*.java"/>          <include name="**/*.java"/>
461        </fileset>        </fileset>
462          <arg line="-Xdocrootparent ${java9.docroot.url}"/>
463          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
464        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
465          <arg value="--patch-module=java.base=${src.dir}"/>
466        <arg value="-tag"/>        <arg value="-tag"/>
467        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
468    <!-- @apiNote currently unused -->
469    <!--       <arg value="-tag"/> -->
470    <!--       <arg value="apiNote:a:API Note:"/> -->
471          <arg value="-tag"/>
472          <arg value="implSpec:a:Implementation Requirements:"/>
473          <arg value="-tag"/>
474          <arg value="implNote:a:Implementation Note:"/>
475    <!-- tags added in jdk9: currently unused -->
476    <!--       <arg value="-tag"/> -->
477    <!--       <arg value="revised:X"/> -->
478    <!--       <arg value="-tag"/> -->
479    <!--       <arg value="spec:X"/> -->
480      </javadoc>      </javadoc>
481    </target>    </target>
482    
# Line 360  As of 2013-02, the very latest lambda 8 Line 500  As of 2013-02, the very latest lambda 8
500        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
501        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
502        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
503          <manifest>
504            <attribute name="Built-By" value="${user.name}"/>
505            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
506          </manifest>
507      </jar>      </jar>
508    </target>    </target>
509    
# Line 375  As of 2013-02, the very latest lambda 8 Line 519  As of 2013-02, the very latest lambda 8
519    <target name="dist-clean"    <target name="dist-clean"
520            description="Removes all build and distribution products">            description="Removes all build and distribution products">
521    
522        <delete dir="${build.dir}"/>
523      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
524    
525    </target>    </target>
526    
527    
   <!-- Internal targets -->  
   
   
528    <target name="dist-jar"    <target name="dist-jar"
529            depends="clean, jar">            depends="clean, jar">
530      <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 535  As of 2013-02, the very latest lambda 8
535      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
536    </target>    </target>
537    
538      <target name="tck"
539              depends="jar"
540              description="Runs tck tests for src/main directly">
541    
542        <run-tck-tests
543          target="${build.main.java.version}"
544          workdir="${build.dir}"
545          classes="${product.jar}">
546          <javac-elements>
547            <compilerarg value="-Werror"/>
548          </javac-elements>
549        </run-tck-tests>
550      </target>
551    
552      <target name="tck-parallelism-1"
553              description="Runs tck with common pool parallelism 1">
554        <antcall target="tck">
555          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
556        </antcall>
557      </target>
558    
559      <target name="tck-parallelism-0"
560              description="Runs tck with common pool parallelism 0">
561        <antcall target="tck">
562          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
563        </antcall>
564      </target>
565    
566      <target name="tck-security-manager"
567              description="Runs tck with a security manager">
568        <antcall target="tck">
569          <param name="jsr166.useSecurityManager" value="true"/>
570        </antcall>
571      </target>
572    
573      <target name="jtreg"
574              depends="jar"
575              description="Runs jtreg tests for src/main using the jtreg ant task">
576        <run-jtreg-tests
577           target="${build.main.java.version}"
578           workdir="${build.dir}"
579           classes="${product.jar}"/>
580      </target>
581    
582      <target name="test"
583              depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
584              description="Runs tck and jtreg tests for src/main">
585      </target>
586    
587    <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
588    
589    <!--     <antcall target="jtreg"> -->
590    <!--       <param name="build.main.java.version" value="8"/> -->
591    <!--       <param name="build.main.javac" value="${javac8}"/> -->
592    <!--     </antcall> -->
593    
594    <target name="compile-tests"  <!--   </target> -->
           depends="jar">  
595    
596      <mkdir dir="${build.testcases.dir}"/>  <!--   <target name="test89" -->
597    <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
598    
599      <javac srcdir="${tck.src.dir}"  <!--     <antcall target="clean"/> -->
600             destdir="${build.testcases.dir}"  <!--     <antcall target="test"> -->
601    <!--       <param name="build.main.java.version" value="8"/> -->
602    <!--       <param name="build.main.javac" value="${javac8}"/> -->
603    <!--     </antcall> -->
604    
605    <!--     <antcall target="clean"/> -->
606    <!--     <antcall target="test"> -->
607    <!--       <param name="build.main.java.version" value="9"/> -->
608    <!--       <param name="build.main.javac" value="${javac9}"/> -->
609    <!--     </antcall> -->
610    
611    <!--   </target> -->
612    
613    
614    
615      <target name="configure-compiler">
616        <fail message="ant version too old">
617          <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
618        </fail>
619    
620        <property name="unchecked.option" value="-Xlint:unchecked"/>
621    
622        <condition property="warnunchecked.arg" value="${unchecked.option}">
623          <istrue value="${build.warnunchecked}"/>
624        </condition>
625    
626        <property name="warnunchecked.arg" value=""/>
627    
628    
629        <!-- Common options in javac invocations -->
630        <property name="build.args" value="${warnunchecked.arg}"/>
631    
632      </target>
633    
634    
635    
636      <!-- Various demos and test programs -->
637    
638    
639      <!-- description="Benchmark from Doug Lea's AQS paper" -->
640      <target name="loops" depends="configure-compiler">
641    
642        <mkdir dir="${build.loops.dir}"/>
643    
644        <javac srcdir="${loops.src.dir}"
645              destdir="${build.loops.dir}"
646                debug="${build.debug}"
647           debuglevel="${build.debuglevel}"
648          deprecation="${build.deprecation}"
649               source="${build.sourcelevel}"
650               target="${build.sourcelevel}"
651             encoding="ASCII"
652                 fork="true">
653    
654          <compilerarg line="${build.args}"/>
655          <classpath refid="loops.classpath"/>
656          <compilerarg value="-XDignore.symbol.file=true"/>
657    
658        </javac>
659    
660        <java classname="ALoops" fork="true">
661          <classpath refid="loops.classpath"/>
662        </java>
663    
664      </target>
665    
666    
667      <target name="compile-test-loops" depends="jar"
668              description="compile all the perf tests in src/test/loops">
669    
670        <mkdir dir="${build.dir}/test/loops"/>
671    
672        <javac srcdir="${basedir}/src/test/loops"
673               destdir="${build.dir}/test/loops"
674             debug="${build.debug}"             debug="${build.debug}"
675             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
676             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
            source="6"  
            classpath="${junit.jar}"  
            bootclasspath="@{product.jar}:${bootclasspath6}"  
677             includeAntRuntime="false"             includeAntRuntime="false"
678             includeJavaRuntime="false"             includeJavaRuntime="false"
679             executable="${javac8}"             encoding="ASCII"
680               executable="${javac9}"
681             fork="true">             fork="true">
682    
683        <include name="**/*.java"/>        <include name="*.java"/>
684        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
685        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
686          <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
687        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
688    
689      </javac>      </javac>
690    
691      <javac srcdir="${test.src.dir}"    </target>
692             destdir="${build.testcases.dir}"  
693    
694      <!-- jsr166 4jdk8 -->
695    
696      <target name="4jdk8compile"
697              depends="configure-compiler"
698              description="Compiles src/jdk8 sources, targeting jdk8">
699    
700        <mkdir dir="${build.4jdk8.classes.dir}"/>
701    
702        <javac srcdir="${4jdk8src.dir}"
703               destdir="${build.4jdk8.classes.dir}"
704             debug="${build.debug}"             debug="${build.debug}"
705             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
706             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
707             source="6"             source="8"
708               target="8"
709             classpath=""             classpath=""
710             bootclasspath="@{product.jar}:${bootclasspath6}"             bootclasspath="${bootclasspath8}"
711             includeAntRuntime="false"             includeAntRuntime="false"
712             includeJavaRuntime="false"             includeJavaRuntime="false"
713               encoding="ASCII"
714             executable="${javac8}"             executable="${javac8}"
715             fork="true">             fork="true">
716    
717        <include name="jsr166/test/**/*.java"/>        <include name="**/*.java"/>
718          <compilerarg value="-Xprefer:source"/>
719        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
720        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>        <compilerarg value="-Xlint:all"/>
721          <compilerarg value="-Werror"/>
722        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
723    
724      </javac>      </javac>
725      </target>
726    
727  <!--    <target name="4jdk8doclint"
728      <javac srcdir="${jtreg.src.dir}"            depends="configure-compiler"
729            destdir="${build.testcases.dir}"            description="Finds doclint warnings">
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
730    
731        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>      <mkdir dir="${build.4jdk8.classes.dir}"/>
732    
733        <javac srcdir="${4jdk8src.dir}"
734               destdir="${build.4jdk8.classes.dir}"
735               debug="${build.debug}"
736               debuglevel="${build.debuglevel}"
737               deprecation="${build.deprecation}"
738               source="8"
739               target="8"
740               classpath=""
741               bootclasspath="${bootclasspath8}"
742               includeAntRuntime="false"
743               includeJavaRuntime="false"
744               encoding="ASCII"
745               executable="${javac8}"
746               fork="true">
747    
748          <include name="**/*.java"/>
749          <compilerarg value="-Xprefer:source"/>
750        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
751          <compilerarg value="-Xlint:all"/>
752          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
753        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
754    
755      </javac>      </javac>
 -->  
   
756    </target>    </target>
757    
   <target name="test-tck"  
           depends="jar"  
           description="Runs tck tests for main directly">  
758    
759      <run-tck-tests    <target name="4jdk8jar"
760        target="8"            depends="4jdk8compile"
761        workdir="${build.dir}"            description="Builds library jar from compiled sources">
       classes="${product.jar}"/>  
   </target>  
762    
763    <target name="test-jtreg"      <jar destfile="${4jdk8product.jar}">
764            depends="jar"        <fileset dir="${build.4jdk8.classes.dir}"/>
765            description="Runs jtreg tests for main using the jtreg ant task">        <manifest>
766      <run-jtreg-tests          <attribute name="Built-By" value="${user.name}"/>
767         target="8"          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
768         workdir="${build.dir}"        </manifest>
769         classes="${product.jar}"/>      </jar>
   </target>  
770    
   <target name="test-ng"  
           depends="test-tck, test-jtreg"  
           description="Runs tck and jtreg tests for main">  
771    </target>    </target>
772    
   <target name="run-tests"  
           depends="compile-tests">  
   
     <!-- May be overridden by user.properties -->  
     <property name="testcase" value="*"/>  
773    
774      <mkdir dir="${build.reports.dir}"/>    <target name="4jdk8-tck"
775              depends="4jdk8jar"
776              description="Runs tck tests for jsr166-4jdk8 directly">
777    
778      <junit printsummary="true"      <run-tck-tests
779               showoutput="true"        target="8"
780            errorProperty="junit.failed"        workdir="${build.4jdk8.dir}"
781          failureProperty="junit.failed"        classes="${4jdk8product.jar}">
782                      dir="${build.reports.dir}"        <javac-elements>
783                      jvm="${java8}"          <!-- JDK9+ test classes -->
784                     fork="true">          <exclude name="*9Test.java"/>
785            <exclude name="*10Test.java"/>
786        <jvmarg value="-Xbootclasspath/p:${product.jar}"/>          <compilerarg value="-Werror"/>
787        <jvmarg value="-server"/>        </javac-elements>
788        <jvmarg value="-showversion"/>      </run-tck-tests>
789      </target>
       <classpath refid="test.classpath"/>  
790    
       <formatter type="xml"/>  
791    
792        <batchtest todir="${build.reports.dir}" unless="no.test.tck">    <target name="4jdk8-jtreg"
793          <fileset dir="${tck.src.dir}">            depends="4jdk8jar"
794            <include name="**/${testcase}Test.java"/>            description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
795          </fileset>      <run-jtreg-tests
796        </batchtest>         target="8"
797           workdir="${build.4jdk8.dir}"
798        <batchtest todir="${build.reports.dir}" if="do.test.old">         classes="${4jdk8product.jar}"/>
799          <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>  
 -->  
800    
     </junit>  
801    
802      <target name="4jdk8-test"
803              depends="4jdk8-tck, 4jdk8-jtreg"
804              description="Runs tck and jtreg tests for jsr166-4jdk8">
805    </target>    </target>
806    
807    
808    <target name="report-tests"    <target name="4jdk8docs"
809            depends="run-tests">            description="Builds javadocs for src/jdk8 to dist dir">
810    
811      <!-- Sets junit.report.format to frames if redirection is present,      <delete dir="${4jdk8docs.dir}"/>
812           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"/>  
813    
814        <javadoc destdir="${4jdk8docs.dir}"
815                 packagenames="none"
816                 link="${java8.api.url}"
817                 overview="${4jdk8src.dir}/intro.html"
818                 access="${build.javadoc.access}"
819                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
820                 classpath=""
821                 executable="${javadoc8}"
822                 failonerror = "true">
823          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
824            <include name="**/*.java"/>
825          </fileset>
826          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
827          <arg value="-XDignore.symbol.file=true"/>
828          <arg value="-tag"/>
829          <arg value="${javadoc.jls.option}"/>
830    <!-- @apiNote currently unused -->
831    <!--       <arg value="-tag"/> -->
832    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
833          <arg value="-tag"/>
834          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
835          <arg value="-tag"/>
836          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
837        </javadoc>
838    </target>    </target>
839    
840    
841    <target name="configure-compiler">    <target name="4jdk8dist"
842              depends="4jdk8dist-jar, 4jdk8dist-docs"
843      <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>  
844    
     <property name="warnunchecked.arg" value=""/>  
845    
846      <target name="4jdk8clean"
847              description="Removes all 4jdk8 build products">
848    
849      <!-- Common options in javac invocations -->      <delete dir="${build.4jdk8.dir}"/>
     <property name="build.args" value="${warnunchecked.arg}"/>  
850    
851    </target>    </target>
852    
853    
854    <target name="configure-tests"    <target name="4jdk8dist-jar"
855         depends="configure-compiler">            depends="4jdk8clean, 4jdk8jar">
856        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
857      <!-- 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"/>  
   
858    
     <!-- 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"/>  
     -->  
859    
860      <target name="4jdk8dist-docs"
861              depends="4jdk8clean, 4jdk8docs">
862        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
863    </target>    </target>
864    
865    
   <!-- Various demos and test programs -->  
866    
867      <!-- jsr166 4jdk7 -->
868    
869    <target name="loops" depends="configure-compiler"    <target name="4jdk7compile"
870            description="Benchmark from Doug Lea's AQS paper">            depends="configure-compiler"
871              description="Compiles src/jdk7 sources, targeting jdk7">
872    
873      <mkdir dir="${build.loops.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
874    
875      <javac srcdir="${loops.src.dir}"      <javac srcdir="${4jdk7src.dir}"
876            destdir="${build.loops.dir}"             destdir="${build.4jdk7.classes.dir}"
877              debug="${build.debug}"             debug="${build.debug}"
878         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
879        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
880             source="${build.sourcelevel}"             source="6"
881               fork="true">             target="6"
882               classpath=""
883               bootclasspath="${bootclasspath6}"
884               includeAntRuntime="false"
885               includeJavaRuntime="false"
886               encoding="ASCII"
887               executable="${javac7}"
888               fork="true">
889    
890        <compilerarg line="${build.args}"/>        <include name="**/*.java"/>
891        <classpath refid="loops.classpath"/>        <compilerarg value="-Xprefer:source"/>
892        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
893          <compilerarg value="-Xlint:all"/>
894          <compilerarg value="-Werror"/>
895          <compilerarg line="${build.args}"/>
896    
897      </javac>      </javac>
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   
898    </target>    </target>
899    
900      <target name="4jdk7doclint"
   <!-- jsr166 4jdk7 -->  
   
   <target name="4jdk7compile"  
901            depends="configure-compiler"            depends="configure-compiler"
902            description="Compiles src/jdk7 sources, targeting jdk7">            description="Finds doclint warnings">
903    
904      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
905    
# Line 638  As of 2013-02, the very latest lambda 8 Line 909  As of 2013-02, the very latest lambda 8
909             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
910             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
911             source="6"             source="6"
912               target="6"
913             classpath=""             classpath=""
914             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
915             includeAntRuntime="false"             includeAntRuntime="false"
916             includeJavaRuntime="false"             includeJavaRuntime="false"
917             executable="${javac7}"             encoding="ASCII"
918               executable="${javac8}"
919             fork="true">             fork="true">
920    
921        <include name="**/*.java"/>        <include name="**/*.java"/>
922        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
923        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
924        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
925          <compilerarg value="-Xdoclint:all/protected"/>
926        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
927    
928      </javac>      </javac>
# Line 661  As of 2013-02, the very latest lambda 8 Line 935  As of 2013-02, the very latest lambda 8
935    
936      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
937        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
938          <manifest>
939            <attribute name="Built-By" value="${user.name}"/>
940            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
941          </manifest>
942      </jar>      </jar>
943    
944    </target>    </target>
945    
946    
947    <target name="4jdk7-test-tck"    <target name="4jdk7-tck"
948            depends="4jdk7jar"            depends="4jdk7jar"
949            description="Runs tck tests for jsr166-4jdk7 directly">            description="Runs tck tests for jsr166-4jdk7 directly">
950    
# Line 677  As of 2013-02, the very latest lambda 8 Line 955  As of 2013-02, the very latest lambda 8
955        <javac-elements>        <javac-elements>
956          <!-- JDK8+ test classes -->          <!-- JDK8+ test classes -->
957          <exclude name="*8Test.java"/>          <exclude name="*8Test.java"/>
958            <exclude name="*9Test.java"/>
959            <exclude name="*10Test.java"/>
960          <exclude name="DoubleAccumulatorTest.java"/>          <exclude name="DoubleAccumulatorTest.java"/>
961          <exclude name="DoubleAdderTest.java"/>          <exclude name="DoubleAdderTest.java"/>
962          <exclude name="LongAccumulatorTest.java"/>          <exclude name="LongAccumulatorTest.java"/>
963          <exclude name="LongAdderTest.java"/>          <exclude name="LongAdderTest.java"/>
964          <exclude name="CompletableFutureTest.java"/>          <exclude name="CompletableFutureTest.java"/>
965            <exclude name="SplittableRandomTest.java"/>
966          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
967            <exclude name="SubmissionPublisherTest.java"/>
968            <compilerarg value="-Werror"/>
969        </javac-elements>        </javac-elements>
970      </run-tck-tests>      </run-tck-tests>
971    </target>    </target>
972    
973    
974    <target name="4jdk7-test-tck-junit"    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
975            depends="4jdk7compile"    <target name="4jdk7-tck-junit"
976            description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">            depends="4jdk7compile">
977    
978      <junit printsummary="true"      <junit printsummary="true"
979             showoutput="true"             showoutput="true"
# Line 716  As of 2013-02, the very latest lambda 8 Line 999  As of 2013-02, the very latest lambda 8
999      </junit>      </junit>
1000    </target>    </target>
1001    
1002    <target name="4jdk7-test-jtreg"    <target name="4jdk7-jtreg"
1003            depends="4jdk7jar"            depends="4jdk7jar"
1004            description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">            description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
1005      <run-jtreg-tests      <run-jtreg-tests
# Line 727  As of 2013-02, the very latest lambda 8 Line 1010  As of 2013-02, the very latest lambda 8
1010    
1011    
1012    <target name="4jdk7-test"    <target name="4jdk7-test"
1013            depends="4jdk7-test-tck, 4jdk7-test-jtreg"            depends="4jdk7-tck, 4jdk7-jtreg"
1014            description="Runs tck and jtreg tests for jsr166-4jdk7">            description="Runs tck and jtreg tests for jsr166-4jdk7">
1015    </target>    </target>
1016    
# Line 740  As of 2013-02, the very latest lambda 8 Line 1023  As of 2013-02, the very latest lambda 8
1023    
1024      <javadoc destdir="${4jdk7docs.dir}"      <javadoc destdir="${4jdk7docs.dir}"
1025               packagenames="none"               packagenames="none"
1026               link="${jdkapi7docs.url}"               link="${java7.api.url}"
1027               overview="${4jdk7src.dir}/intro.html"               overview="${4jdk7src.dir}/intro.html"
1028               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1029               sourcepath="${4jdk7src.dir}:${jdk7src.dir}"               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1030               classpath=""               classpath=""
1031               executable="${javadoc7}">               executable="${javadoc7}"
1032                 failonerror = "true">
1033        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1034          <include name="**/*.java"/>          <include name="**/*.java"/>
1035        </fileset>        </fileset>
1036          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
1037        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1038      </javadoc>      </javadoc>
1039    </target>    </target>
# Line 767  As of 2013-02, the very latest lambda 8 Line 1052  As of 2013-02, the very latest lambda 8
1052    </target>    </target>
1053    
1054    
   <target name="4jdk7dist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
1055    <target name="4jdk7dist-jar"    <target name="4jdk7dist-jar"
1056            depends="4jdk7clean, 4jdk7jar">            depends="4jdk7clean, 4jdk7jar">
1057      <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 1080  As of 2013-02, the very latest lambda 8
1080             classpath=""             classpath=""
1081             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1082             source="5"             source="5"
1083               target="5"
1084             includeAntRuntime="false"             includeAntRuntime="false"
1085             includeJavaRuntime="false"             includeJavaRuntime="false"
1086               encoding="ASCII"
1087             executable="${javac7}"             executable="${javac7}"
1088             fork="true">             fork="true">
1089    
1090        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1091        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1092        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1093          <compilerarg value="-Werror"/>
1094        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1095    
1096      </javac>      </javac>
# Line 820  As of 2013-02, the very latest lambda 8 Line 1103  As of 2013-02, the very latest lambda 8
1103    
1104      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1105        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1106          <manifest>
1107            <attribute name="Built-By" value="${user.name}"/>
1108            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1109          </manifest>
1110      </jar>      </jar>
1111    
1112    </target>    </target>
# Line 833  As of 2013-02, the very latest lambda 8 Line 1120  As of 2013-02, the very latest lambda 8
1120    
1121      <javadoc destdir="${jsr166xdocs.dir}"      <javadoc destdir="${jsr166xdocs.dir}"
1122               packagenames="jsr166x.*"               packagenames="jsr166x.*"
1123               link="${jdkapidocs.url}"               link="${java.api.url}"
1124               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1125               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1126               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1127               source="5"               source="5"
1128               executable="${javadoc7}">               executable="${javadoc7}"
1129                 failonerror = "true">
1130          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1131        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1132    
1133      </javadoc>      </javadoc>
# Line 858  As of 2013-02, the very latest lambda 8 Line 1147  As of 2013-02, the very latest lambda 8
1147    </target>    </target>
1148    
1149    
   <target name="jsr166xdist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
   
1150    <target name="jsr166xdist-jar"    <target name="jsr166xdist-jar"
1151            depends="jsr166xclean, jsr166xjar">            depends="jsr166xclean, jsr166xjar">
1152      <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 1172  As of 2013-02, the very latest lambda 8
1172             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1173             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1174             source="6"             source="6"
1175               target="6"
1176             classpath=""             classpath=""
1177             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1178             includeAntRuntime="false"             includeAntRuntime="false"
1179             includeJavaRuntime="false"             includeJavaRuntime="false"
1180               encoding="ASCII"
1181             executable="${javac7}"             executable="${javac7}"
1182             fork="true">             fork="true">
1183    
1184        <include name="jsr166y/**/*.java"/>        <include name="jsr166y/**/*.java"/>
1185        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1186        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1187          <compilerarg value="-Werror"/>
1188        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1189    
1190      </javac>      </javac>
# Line 911  As of 2013-02, the very latest lambda 8 Line 1197  As of 2013-02, the very latest lambda 8
1197    
1198      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1199        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1200          <manifest>
1201            <attribute name="Built-By" value="${user.name}"/>
1202            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1203          </manifest>
1204      </jar>      </jar>
1205    
1206    </target>    </target>
# Line 924  As of 2013-02, the very latest lambda 8 Line 1214  As of 2013-02, the very latest lambda 8
1214    
1215      <javadoc destdir="${jsr166ydocs.dir}"      <javadoc destdir="${jsr166ydocs.dir}"
1216               packagenames="jsr166y.*"               packagenames="jsr166y.*"
1217               link="${jdkapidocs.url}"               link="${java.api.url}"
1218               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1219               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1220               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1221               source="6"               source="6"
1222               executable="${javadoc7}">               executable="${javadoc7}"
1223                 failonerror = "true">
1224          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1225        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1226    
1227      </javadoc>      </javadoc>
# Line 949  As of 2013-02, the very latest lambda 8 Line 1241  As of 2013-02, the very latest lambda 8
1241    </target>    </target>
1242    
1243    
   <target name="jsr166ydist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
1244    <target name="jsr166ydist-jar"    <target name="jsr166ydist-jar"
1245            depends="jsr166yclean, jsr166yjar">            depends="jsr166yclean, jsr166yjar">
1246      <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 1269  As of 2013-02, the very latest lambda 8
1269             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1270             classpath=""             classpath=""
1271             source="6"             source="6"
1272               target="6"
1273             includeAntRuntime="false"             includeAntRuntime="false"
1274             includeJavaRuntime="false"             includeJavaRuntime="false"
1275               encoding="ASCII"
1276             executable="${javac7}"             executable="${javac7}"
1277             fork="true">             fork="true">
1278    
1279        <include name="extra166y/**/*.java"/>        <include name="extra166y/**/*.java"/>
1280        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1281        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1282          <compilerarg value="-Werror"/>
1283        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1284    
1285      </javac>      </javac>
# Line 1002  As of 2013-02, the very latest lambda 8 Line 1292  As of 2013-02, the very latest lambda 8
1292    
1293      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1294        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1295          <manifest>
1296            <attribute name="Built-By" value="${user.name}"/>
1297            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1298          </manifest>
1299      </jar>      </jar>
1300    
1301    </target>    </target>
# Line 1015  As of 2013-02, the very latest lambda 8 Line 1309  As of 2013-02, the very latest lambda 8
1309    
1310      <javadoc destdir="${extra166ydocs.dir}"      <javadoc destdir="${extra166ydocs.dir}"
1311               packagenames="extra166y.*"               packagenames="extra166y.*"
1312               link="${jdkapidocs.url}"               link="${java.api.url}"
1313               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1314               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1315               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1316               source="6"               source="6"
1317               executable="${javadoc7}">               executable="${javadoc7}">
1318          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1319        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1320    
1321      </javadoc>      </javadoc>
# Line 1040  As of 2013-02, the very latest lambda 8 Line 1335  As of 2013-02, the very latest lambda 8
1335    </target>    </target>
1336    
1337    
   <target name="extra166ydist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
1338    <target name="extra166ydist-jar"    <target name="extra166ydist-jar"
1339            depends="extra166yclean, extra166yjar">            depends="extra166yclean, extra166yjar">
1340      <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 1347  As of 2013-02, the very latest lambda 8
1347    
1348    <!-- jsr166e -->    <!-- jsr166e -->
1349    
1350      <property name="build.jsr166e.java.version" value="6"/>
1351      <property name="build.jsr166e.javac" value="${javac6}"/>
1352    
1353    <target name="jsr166ecompile"    <target name="jsr166ecompile"
1354            depends="configure-compiler"            depends="configure-compiler"
1355            description="Compiles jsr166e sources">            description="Compiles jsr166e sources">
# Line 1068  As of 2013-02, the very latest lambda 8 Line 1361  As of 2013-02, the very latest lambda 8
1361             debug="${build.debug}"             debug="${build.debug}"
1362             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1363             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1364             source="7"             source="${build.jsr166e.java.version}"
1365               target="${build.jsr166e.java.version}"
1366             classpath=""             classpath=""
1367             includeAntRuntime="false"             includeAntRuntime="false"
1368             includeJavaRuntime="false"             includeJavaRuntime="false"
1369             executable="${javac7}"             executable="${build.jsr166e.javac}"
1370             fork="true">             fork="true">
1371    
1372        <include name="jsr166e/**/*.java"/>        <include name="jsr166e/**/*.java"/>
1373        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1374        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1375          <compilerarg value="-Werror"/>
1376        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1377    
1378      </javac>      </javac>
1379    </target>    </target>
1380    
1381      <!-- jsr166e: find doclint errors -->
1382      <target name="jsr166edoclint">
1383    
1384        <mkdir dir="${build.jsr166e.classes.dir}"/>
1385    
1386        <javac srcdir="${topsrc.dir}"
1387               destdir="${build.jsr166e.classes.dir}"
1388               debug="${build.debug}"
1389               debuglevel="${build.debuglevel}"
1390               deprecation="${build.deprecation}"
1391               source="${build.jsr166e.java.version}"
1392               target="${build.jsr166e.java.version}"
1393               classpath=""
1394               bootclasspath="${bootclasspath6}"
1395               includeAntRuntime="false"
1396               includeJavaRuntime="false"
1397               executable="${javac8}"
1398               fork="true">
1399    
1400          <include name="jsr166e/**/*.java"/>
1401          <compilerarg value="-XDignore.symbol.file=true"/>
1402          <compilerarg value="-Xlint:all"/>
1403          <compilerarg value="-Werror"/>
1404          <compilerarg value="-Xdoclint:all/protected"/>
1405    
1406        </javac>
1407      </target>
1408    
1409    
1410    <target name="jsr166ejar"    <target name="jsr166ejar"
1411            depends="jsr166ecompile"            depends="jsr166ecompile"
# Line 1090  As of 2013-02, the very latest lambda 8 Line 1413  As of 2013-02, the very latest lambda 8
1413    
1414      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1415        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1416          <manifest>
1417            <attribute name="Built-By" value="${user.name}"/>
1418            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1419          </manifest>
1420      </jar>      </jar>
1421    
1422    </target>    </target>
# Line 1103  As of 2013-02, the very latest lambda 8 Line 1430  As of 2013-02, the very latest lambda 8
1430    
1431      <javadoc destdir="${jsr166edocs.dir}"      <javadoc destdir="${jsr166edocs.dir}"
1432               packagenames="jsr166e.*"               packagenames="jsr166e.*"
1433               link="${jdkapidocs.url}"               link="${java.api.url}"
1434               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1435               sourcepath="${topsrc.dir}:${jdk7src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1436               source="7"               source="${build.jsr166e.java.version}"
1437               executable="${javadoc7}">               executable="${javadoc7}"
1438                 failonerror = "true">
1439          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1440        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1441    
1442      </javadoc>      </javadoc>
1443    </target>    </target>
1444    
1445    
1446    <target name="jsr166e-test-tck"    <target name="jsr166e-tck-one-java-version"
1447            depends="jsr166ejar"            depends="jsr166ejar">
1448            description="Runs tck tests for jsr166e">  
1449        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1450    
1451      <run-tck-tests      <run-tck-tests
1452        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1453        target="7"        target="${build.jsr166e.java.version}"
1454        workdir="${build.jsr166e.dir}"        workdir="${build.jsr166e.dir}"
1455        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1456    </target>    </target>
1457    
1458      <target name="jsr166e-tck"
1459              description="Runs tck tests for jsr166e for multiple java versions">
1460    
1461    <!--     <antcall target="clean"/> -->
1462    <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1463    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1464    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1465    <!--     </antcall> -->
1466    
1467        <antcall target="clean"/>
1468        <antcall target="jsr166e-tck-one-java-version">
1469          <param name="build.jsr166e.java.version" value="7"/>
1470          <param name="build.jsr166e.javac" value="${javac7}"/>
1471        </antcall>
1472    
1473        <antcall target="clean"/>
1474        <antcall target="jsr166e-tck-one-java-version">
1475          <param name="build.jsr166e.java.version" value="6"/>
1476          <param name="build.jsr166e.javac" value="${javac6}"/>
1477        </antcall>
1478      </target>
1479    
1480    
1481      <target name="jsr166e-test"
1482              depends="jsr166e-tck"
1483              description="Runs all tests for jsr166e">
1484      </target>
1485    
1486    <target name="jsr166edist"    <target name="jsr166edist"
1487            depends="jsr166edist-jar, jsr166edist-docs"            depends="jsr166edist-jar, jsr166edist-docs"
# Line 1137  As of 2013-02, the very latest lambda 8 Line 1494  As of 2013-02, the very latest lambda 8
1494    </target>    </target>
1495    
1496    
   <target name="jsr166edist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
1497    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1498            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1499      <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 1509  As of 2013-02, the very latest lambda 8
1509    
1510    <target name="lint">    <target name="lint">
1511      <antcall target="dists">      <antcall target="dists">
1512          <param name="build.javadoc.access" value="public"/>
1513        </antcall>
1514      </target>
1515    
1516    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1517      <target name="lint-private">
1518        <antcall target="dist">
1519        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1520      </antcall>      </antcall>
1521    </target>    </target>
1522    
1523    
1524    <!-- ==============================================================
1525      Experimental errorprone support - http://errorprone.info
1526      You may need to bring your own errorprone jar.
1527    =================================================================== -->
1528      <target name="errorprone"
1529              depends="clean, configure-compiler"
1530              description="Run errorprone over jsr166 source code">
1531    
1532        <local name="destdir"/>
1533        <property name="destdir" value="${build.classes.dir}/java.base"/>
1534        <mkdir dir="${destdir}"/>
1535    
1536        <javac srcdir="${src.dir}"
1537               destdir="${destdir}"
1538               debug="${build.debug}"
1539               debuglevel="${build.debuglevel}"
1540               deprecation="${build.deprecation}"
1541               classpath=""
1542               includeAntRuntime="false"
1543               includeJavaRuntime="false"
1544               encoding="ASCII"
1545               executable="${build.main.javac}"
1546               fork="true">
1547    
1548          <include name="**/*.java"/>
1549          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1550          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1551          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1552          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1553          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1554          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1555          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1556          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1557          <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1558          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1559          <compilerarg value="-Xplugin:ErrorProne
1560                              -Xep:IdentityBinaryExpression:WARN
1561                              -Xep:MissingOverride:OFF
1562                              -Xep:MixedArrayDimensions:WARN
1563                              -Xep:RemoveUnusedImports:ERROR
1564                              -Xep:MethodCanBeStatic:WARN"/>
1565          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1566          <compilerarg value="-Xprefer:source"/>
1567          <compilerarg value="-XDignore.symbol.file=true"/>
1568          <compilerarg value="-Xlint:all"/>
1569          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1570          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1571          <compilerarg line="${build.args}"/>
1572        </javac>
1573    
1574        <jar destfile="${product.jar}">
1575          <fileset dir="${destdir}"/>
1576        </jar>
1577    
1578        <run-tck-tests
1579          target="${build.main.java.version}"
1580          workdir="${build.dir}"
1581          classes="${product.jar}">
1582          <javac-elements>
1583            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1584            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1585            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1586            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1587            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1588            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1589            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1590            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1591            <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1592            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1593            <compilerarg value="-Xplugin:ErrorProne
1594                                -Xep:IdentityBinaryExpression:WARN
1595                                -Xep:BoxedPrimitiveConstructor:OFF
1596                                -Xep:HashtableContains:OFF
1597                                -Xep:ModifyingCollectionWithItself:OFF
1598                                -Xep:MissingOverride:OFF
1599                                -Xep:MixedArrayDimensions:WARN
1600                                -Xep:RemoveUnusedImports:ERROR
1601                                -Xep:MethodCanBeStatic:WARN"/>
1602            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1603          </javac-elements>
1604        </run-tck-tests>
1605      </target>
1606    
1607    
1608    <!-- ==============================================================
1609      Running guava tests against jsr166 code
1610    =================================================================== -->
1611    
1612    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1613    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1614    <!-- <property name="guava.version" value="21.0"/> -->
1615    
1616    <!-- HOWTO debug print a path id -->
1617    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1618    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1619    
1620    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1621    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1622    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1623    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1624    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1625    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1626    
1627    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1628    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1629    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1630    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1631    
1632    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1633    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1634    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1635    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1636    
1637    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1638    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1639    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1640    
1641      <target name="init-ivy">
1642        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1643             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1644        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1645                 classpath="${build.dir}/ivy.jar"/>
1646      </target>
1647    
1648      <target name="guava-tests" depends="jar, init-ivy"
1649              description="Guava tests run against jsr166 collections">
1650        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1651        <mkdir dir="${guava.dir}"/>
1652        <ivy:retrieve pathid="guava.testlib.classpath"
1653          type="jar,bundle" inline="true" conf="default,master"
1654          pattern="${guava.dir}/[artifact].[ext]"
1655          organisation="com.google.guava" module="guava-testlib"/>
1656        <property name="guava.version" value="21.0"/>
1657        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1658             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1659        <junit printsummary="true" showoutput="true" haltonfailure="true"
1660               jvm="${java9}" fork="true">
1661          <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1662          <formatter type="brief"/>
1663          <classpath>
1664            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1665            <path refid="guava.testlib.classpath"/>
1666          </classpath>
1667    
1668          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1669          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1670        </junit>
1671      </target>
1672    
1673  </project>  </project>

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

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