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

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

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