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

Diff of /jsr166/build.xml

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

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

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