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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.92  
changed lines
  Added in v.1.274

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