/[cvs]/jsr166/build.xml
ViewVC logotype

Diff of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.1.137  
changed lines
  Added in v.1.265

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