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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.175  
changed lines
  Added in v.1.290

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