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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.107  
changed lines
  Added in v.1.235

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