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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.170  
changed lines
  Added in v.1.244

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