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

Diff of /jsr166/build.xml

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

revision 1.197, Fri Mar 4 21:00:45 2016 UTC revision 1.238, Fri Mar 24 16:33:02 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">    xmlns:if="ant:if" xmlns:unless="ant:unless"
3      xmlns:ivy="antlib:org.apache.ivy.ant">
4    
5    <description>    <description>
6  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 7  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 14  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    $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    $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:    Alternatively, define ant variables thus:
34    ant -Djdk$N.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
35    for $N in 6 7 8 9 ...    for $N in 7 8 9 10 ...
36    
37    As of 2015-09, there is incomplete hacky support for jigsaw    As of 2016-03, the sources in src/main are for jdk9+ only.
   Build for jigsaw using something like:  
   ant -Djdk9.home="$HOME/jdk/jigsaw" -Djdk9.src.dir="$HOME/jdk/src/jigsaw" clean test dist  
   "docs" target is still broken.  
38  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
39    </description>    </description>
40    
41    <!-- Display main targets by running 'ant -projecthelp' -->    <!-- Run 'ant -projecthelp' (default target) -->
42    <target name="usage">    <target name="usage">
43      <java classname="org.apache.tools.ant.Main">      <java classname="org.apache.tools.ant.Main">
44        <arg value="-projecthelp" />        <arg value="-projecthelp" />
# Line 62  Line 63 
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.reports.dir"           location="${build.dir}/reports"/>  
66    
67    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
69    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
70    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>    <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"/>    <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"/>
79    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
# Line 89  Line 94 
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="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
98      <local name="have.java.base"/>      <local name="have.java.base"/>
99      <available property="have.java.base"      <available property="have.java.base"
100        file="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes" type="dir"/>        file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/>
101      <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes"      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"
102        if:set="have.java.base"/>        if:set="have.java.base"/>
103      <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
104        unless:set="have.java.base"/>        unless:set="have.java.base"/>
105      <local name="modules"/>      <local name="modules"/>
106      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
# Line 127  Line 133 
133    <defjdklocations v="7"/>    <defjdklocations v="7"/>
134    <defjdklocations v="8"/>    <defjdklocations v="8"/>
135    <defjdklocations v="9"/>    <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"/>
# Line 134  Line 141 
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="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
144    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
145    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <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}"/>    <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"/>
# Line 149  Line 158 
158    <!-- Javadoc locations -->    <!-- Javadoc locations -->
159    <property name="docs.dir"          location="${build.dir}/docs"/>    <property name="docs.dir"          location="${build.dir}/docs"/>
160    <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>    <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
161      <property name="4jdk8docs.dir"     location="${build.4jdk8.dir}/docs"/>
162    <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>    <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
163    <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>    <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
164    <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>    <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
# Line 156  Line 166 
166    
167    <property name="dist.docs.dir"          location="${dist.dir}/docs"/>    <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
168    <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>    <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"/>    <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
171    <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>    <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
172    <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>    <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
# Line 164  Line 175 
175    <!-- Jar locations -->    <!-- Jar locations -->
176    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
177    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
178      <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
179    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
180    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
181    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
# Line 175  Line 187 
187    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
188    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
189    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
190    <!-- The expected canonical location does not yet exist as of 2015-11 -->    <!-- 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"/> -->    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
192    <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>
193    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
194    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java.docroot.url"       value="${java8.docroot.url}"/>
195    
# Line 209  Line 221 
221      <attribute name="compile-target" default="@{target}"/>      <attribute name="compile-target" default="@{target}"/>
222      <attribute name="workdir"/>      <attribute name="workdir"/>
223      <attribute name="classes"/>      <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"/>      <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
228      <element name="javac-elements" optional="true"/>      <element name="javac-elements" optional="true"/>
229    
# Line 219  Line 234 
234        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
235      </condition>      </condition>
236    
237        <local name="use-doclint"/>
238        <condition property="use-doclint">
239          <not> <equals arg1="@{target}" arg2="7"/> </not>
240        </condition>
241    
242      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
243    
244      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 231  Line 251 
251             classpath="${junit.jar}"             classpath="${junit.jar}"
252             includeAntRuntime="false"             includeAntRuntime="false"
253             includeJavaRuntime="false"             includeJavaRuntime="false"
254               encoding="ASCII"
255             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
256             fork="true">             fork="true">
257    
258        <include name="*.java"/>        <include name="*.java"/>
259        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
260        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
261          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
262        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
263        <compilerarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
264        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
265        <javac-elements/>        <javac-elements/>
266    
# Line 249  Line 271 
271            jvm="${java@{target}}"            jvm="${java@{target}}"
272            fork="true">            fork="true">
273          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
274          <jvmarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
275            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
276            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
278            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
279            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
280          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
281            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
282            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
283    
284          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
285          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
# Line 278  Line 307 
307    <fileset dir="${jtreg8.src.dir}">    <fileset dir="${jtreg8.src.dir}">
308      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
309        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
310      </patternset>      </patternset>
311    </fileset>    </fileset>
312    
# Line 312  Line 338 
338      </condition>      </condition>
339    
340      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
     <mkdir dir="@{workdir}/JTwork/scratch"/>  
     <!-- workaround for https://bugs.openjdk.java.net/browse/CODETOOLS-7901571 -->  
     <mkdir dir="@{workdir}/JTreport/html"/>  
     <mkdir dir="@{workdir}/JTreport/text"/>  
341      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
342             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
343             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
344        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
345        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
346        <arg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>
347          <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>
348        <arg value="-agentvm"/>        <arg value="-agentvm"/>
349          <arg value="-noreport"/>
350        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:${jtreg.verbose}"/>
351        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
352        <arg value="-automatic"/>        <arg value="-automatic"/>
# Line 350  Line 372 
372    <property name="build.main.javac" value="${javac9}"/>    <property name="build.main.javac" value="${javac9}"/>
373    
374    <target name="dists"    <target name="dists"
375            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
376            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
377    
378    <target name="compile"    <target name="compile"
# Line 379  Line 401 
401             classpath=""             classpath=""
402             includeAntRuntime="false"             includeAntRuntime="false"
403             includeJavaRuntime="false"             includeJavaRuntime="false"
404               encoding="ASCII"
405             executable="${build.main.javac}"             executable="${build.main.javac}"
406             fork="true">             fork="true">
407    
408        <include name="**/*.java"/>        <include name="**/*.java"/>
409        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>
410        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
411        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
412        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
413        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
414        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
415        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
416        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
417    
418      </javac>      </javac>
   
     <!-- We need jdk9's Contended annotation, but at compile time only -->  
     <delete file="${destdir}/jdk/internal/vm/annotation/Contended.class"/>  
419    </target>    </target>
420    
421    
422    <target name="jar"    <target name="jar"
423            depends="compile"            depends="compile"
424            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
425        <local name="subdir"/>
426        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
427      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
428        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
429        <manifest>        <manifest>
430          <attribute name="Built-By" value="${user.name}"/>          <attribute name="Built-By" value="${user.name}"/>
431          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
# Line 422  Line 443 
443      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
444      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
445    
446    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
447    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
448    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
449    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
450    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
451      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
452               packagenames="none"               packagenames="none"
453               link="${java9.api.url}"               link="${java9.api.url}"
454               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
455               access="${build.javadoc.access}"               access="${build.javadoc.access}"
456               sourcepath="${src.dir}:${jdk9src.dir}"               sourcepath="${src.dir}"
457               classpath=""               classpath=""
458               executable="${javadoc9}">               executable="${javadoc9}">
459        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
# Line 436  Line 462 
462        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
463        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
464        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
465  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="--patch-module=java.base=${src.dir}"/>
466        <arg value="-tag"/>        <arg value="-tag"/>
467        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
468    <!-- @apiNote currently unused -->
469    <!--       <arg value="-tag"/> -->
470    <!--       <arg value="apiNote:a:API Note:"/> -->
471        <arg value="-tag"/>        <arg value="-tag"/>
472        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="implSpec:a:Implementation Requirements:"/>
473        <arg value="-tag"/>        <arg value="-tag"/>
474        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implNote:a:Implementation Note:"/>
475        <arg value="-tag"/>  <!-- tags added in jdk9: currently unused -->
476        <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
477    <!--       <arg value="revised:X"/> -->
478    <!--       <arg value="-tag"/> -->
479    <!--       <arg value="spec:X"/> -->
480      </javadoc>      </javadoc>
481    </target>    </target>
482    
# Line 505  Line 537 
537    
538    <target name="tck"    <target name="tck"
539            depends="jar"            depends="jar"
540            description="Runs tck tests for main directly">            description="Runs tck tests for src/main directly">
541    
542      <run-tck-tests      <run-tck-tests
543        target="${build.main.java.version}"        target="${build.main.java.version}"
544        workdir="${build.dir}"        workdir="${build.dir}"
545        classes="${product.jar}"/>        classes="${product.jar}">
546          <javac-elements>
547            <compilerarg value="-Werror"/>
548          </javac-elements>
549        </run-tck-tests>
550    </target>    </target>
551    
552    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
553            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 1">
554      <antcall target="tck">      <antcall target="tck">
555        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
556      </antcall>      </antcall>
557    </target>    </target>
558    
559    <target name="tck-parallelism-0"    <target name="tck-parallelism-0"
560            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 0">
561      <antcall target="tck">      <antcall target="tck">
562        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
563      </antcall>      </antcall>
564    </target>    </target>
565    
566      <target name="tck-security-manager"
567              description="Runs tck with a security manager">
568        <antcall target="tck">
569          <param name="jsr166.useSecurityManager" value="true"/>
570        </antcall>
571      </target>
572    
573    <target name="jtreg"    <target name="jtreg"
574            depends="jar"            depends="jar"
575            description="Runs jtreg tests for main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
576      <run-jtreg-tests      <run-jtreg-tests
577         target="${build.main.java.version}"         target="${build.main.java.version}"
578         workdir="${build.dir}"         workdir="${build.dir}"
# Line 537  Line 580 
580    </target>    </target>
581    
582    <target name="test"    <target name="test"
583            depends="tck, tck-parallelism-1, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
584            description="Runs tck and jtreg tests for main">            description="Runs tck and jtreg tests for src/main">
585    </target>    </target>
586    
587    <target name="jtreg8" description="Runs jtreg tests with jdk8">  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
588    
589      <antcall target="jtreg">  <!--     <antcall target="jtreg"> -->
590        <param name="build.main.java.version" value="8"/>  <!--       <param name="build.main.java.version" value="8"/> -->
591        <param name="build.main.javac" value="${javac8}"/>  <!--       <param name="build.main.javac" value="${javac8}"/> -->
592      </antcall>  <!--     </antcall> -->
593    
594    </target>  <!--   </target> -->
595    
596    <target name="test89"  <!--   <target name="test89" -->
597            description="Runs tck and jtreg tests for main for multiple java versions">  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
598    
599      <antcall target="clean"/>  <!--     <antcall target="clean"/> -->
600      <antcall target="test">  <!--     <antcall target="test"> -->
601        <param name="build.main.java.version" value="8"/>  <!--       <param name="build.main.java.version" value="8"/> -->
602        <param name="build.main.javac" value="${javac8}"/>  <!--       <param name="build.main.javac" value="${javac8}"/> -->
603      </antcall>  <!--     </antcall> -->
604    
605      <antcall target="clean"/>  <!--     <antcall target="clean"/> -->
606      <antcall target="test">  <!--     <antcall target="test"> -->
607        <param name="build.main.java.version" value="9"/>  <!--       <param name="build.main.java.version" value="9"/> -->
608        <param name="build.main.javac" value="${javac9}"/>  <!--       <param name="build.main.javac" value="${javac9}"/> -->
609      </antcall>  <!--     </antcall> -->
610    
611    </target>  <!--   </target> -->
612    
613    
614    
615    <target name="configure-compiler">    <target name="configure-compiler">
616      <fail message="ant version too old">      <fail message="ant version too old">
617        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
618      </fail>      </fail>
619    
620      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 595  Line 636 
636    <!-- Various demos and test programs -->    <!-- Various demos and test programs -->
637    
638    
639    <target name="loops" depends="configure-compiler"    <!-- description="Benchmark from Doug Lea's AQS paper" -->
640            description="Benchmark from Doug Lea's AQS paper">    <target name="loops" depends="configure-compiler">
641    
642      <mkdir dir="${build.loops.dir}"/>      <mkdir dir="${build.loops.dir}"/>
643    
# Line 607  Line 648 
648        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
649             source="${build.sourcelevel}"             source="${build.sourcelevel}"
650             target="${build.sourcelevel}"             target="${build.sourcelevel}"
651             encoding="ASCII"
652               fork="true">               fork="true">
653    
654        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 634  Line 676 
676             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
677             includeAntRuntime="false"             includeAntRuntime="false"
678             includeJavaRuntime="false"             includeJavaRuntime="false"
679               encoding="ASCII"
680             executable="${javac9}"             executable="${javac9}"
681             fork="true">             fork="true">
682    
# Line 648  Line 691 
691    </target>    </target>
692    
693    
694      <!-- jsr166 4jdk8 -->
695    
696      <target name="4jdk8compile"
697              depends="configure-compiler"
698              description="Compiles src/jdk8 sources, targeting jdk8">
699    
700        <mkdir dir="${build.4jdk8.classes.dir}"/>
701    
702        <javac srcdir="${4jdk8src.dir}"
703               destdir="${build.4jdk8.classes.dir}"
704               debug="${build.debug}"
705               debuglevel="${build.debuglevel}"
706               deprecation="${build.deprecation}"
707               source="8"
708               target="8"
709               classpath=""
710               bootclasspath="${bootclasspath8}"
711               includeAntRuntime="false"
712               includeJavaRuntime="false"
713               encoding="ASCII"
714               executable="${javac8}"
715               fork="true">
716    
717          <include name="**/*.java"/>
718          <compilerarg value="-Xprefer:source"/>
719          <compilerarg value="-XDignore.symbol.file=true"/>
720          <compilerarg value="-Xlint:all"/>
721          <compilerarg value="-Werror"/>
722          <compilerarg line="${build.args}"/>
723    
724        </javac>
725      </target>
726    
727      <target name="4jdk8doclint"
728              depends="configure-compiler"
729              description="Finds doclint warnings">
730    
731        <mkdir dir="${build.4jdk8.classes.dir}"/>
732    
733        <javac srcdir="${4jdk8src.dir}"
734               destdir="${build.4jdk8.classes.dir}"
735               debug="${build.debug}"
736               debuglevel="${build.debuglevel}"
737               deprecation="${build.deprecation}"
738               source="8"
739               target="8"
740               classpath=""
741               bootclasspath="${bootclasspath8}"
742               includeAntRuntime="false"
743               includeJavaRuntime="false"
744               encoding="ASCII"
745               executable="${javac8}"
746               fork="true">
747    
748          <include name="**/*.java"/>
749          <compilerarg value="-Xprefer:source"/>
750          <compilerarg value="-XDignore.symbol.file=true"/>
751          <compilerarg value="-Xlint:all"/>
752          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
753          <compilerarg line="${build.args}"/>
754    
755        </javac>
756      </target>
757    
758    
759      <target name="4jdk8jar"
760              depends="4jdk8compile"
761              description="Builds library jar from compiled sources">
762    
763        <jar destfile="${4jdk8product.jar}">
764          <fileset dir="${build.4jdk8.classes.dir}"/>
765          <manifest>
766            <attribute name="Built-By" value="${user.name}"/>
767            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
768          </manifest>
769        </jar>
770    
771      </target>
772    
773    
774      <target name="4jdk8-tck"
775              depends="4jdk8jar"
776              description="Runs tck tests for jsr166-4jdk8 directly">
777    
778        <run-tck-tests
779          target="8"
780          workdir="${build.4jdk8.dir}"
781          classes="${4jdk8product.jar}">
782          <javac-elements>
783            <!-- JDK9+ test classes -->
784            <exclude name="*9Test.java"/>
785            <exclude name="*10Test.java"/>
786            <compilerarg value="-Werror"/>
787          </javac-elements>
788        </run-tck-tests>
789      </target>
790    
791    
792      <target name="4jdk8-jtreg"
793              depends="4jdk8jar"
794              description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
795        <run-jtreg-tests
796           target="8"
797           workdir="${build.4jdk8.dir}"
798           classes="${4jdk8product.jar}"/>
799      </target>
800    
801    
802      <target name="4jdk8-test"
803              depends="4jdk8-tck, 4jdk8-jtreg"
804              description="Runs tck and jtreg tests for jsr166-4jdk8">
805      </target>
806    
807    
808      <target name="4jdk8docs"
809              description="Builds javadocs for src/jdk8 to dist dir">
810    
811        <delete dir="${4jdk8docs.dir}"/>
812        <mkdir dir="${4jdk8docs.dir}"/>
813    
814        <javadoc destdir="${4jdk8docs.dir}"
815                 packagenames="none"
816                 link="${java8.api.url}"
817                 overview="${4jdk8src.dir}/intro.html"
818                 access="${build.javadoc.access}"
819                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
820                 classpath=""
821                 executable="${javadoc8}"
822                 failonerror = "true">
823          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
824            <include name="**/*.java"/>
825          </fileset>
826          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
827          <arg value="-XDignore.symbol.file=true"/>
828          <arg value="-tag"/>
829          <arg value="${javadoc.jls.option}"/>
830    <!-- @apiNote currently unused -->
831    <!--       <arg value="-tag"/> -->
832    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
833          <arg value="-tag"/>
834          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
835          <arg value="-tag"/>
836          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
837        </javadoc>
838      </target>
839    
840    
841      <target name="4jdk8dist"
842              depends="4jdk8dist-jar, 4jdk8dist-docs"
843              description="Puts all distributable products in single hierarchy"/>
844    
845    
846      <target name="4jdk8clean"
847              description="Removes all 4jdk8 build products">
848    
849        <delete dir="${build.4jdk8.dir}"/>
850    
851      </target>
852    
853    
854      <target name="4jdk8dist-jar"
855              depends="4jdk8clean, 4jdk8jar">
856        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
857      </target>
858    
859    
860      <target name="4jdk8dist-docs"
861              depends="4jdk8clean, 4jdk8docs">
862        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
863      </target>
864    
865    
866    
867    <!-- jsr166 4jdk7 -->    <!-- jsr166 4jdk7 -->
868    
869    <target name="4jdk7compile"    <target name="4jdk7compile"
# Line 667  Line 883 
883             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
884             includeAntRuntime="false"             includeAntRuntime="false"
885             includeJavaRuntime="false"             includeJavaRuntime="false"
886               encoding="ASCII"
887             executable="${javac7}"             executable="${javac7}"
888             fork="true">             fork="true">
889    
# Line 697  Line 914 
914             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
915             includeAntRuntime="false"             includeAntRuntime="false"
916             includeJavaRuntime="false"             includeJavaRuntime="false"
917               encoding="ASCII"
918             executable="${javac8}"             executable="${javac8}"
919             fork="true">             fork="true">
920    
# Line 747  Line 965 
965          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
966          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
967          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
968            <compilerarg value="-Werror"/>
969        </javac-elements>        </javac-elements>
970      </run-tck-tests>      </run-tck-tests>
971    </target>    </target>
972    
973    
974      <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
975    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit"
976            depends="4jdk7compile"            depends="4jdk7compile">
           description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">  
977    
978      <junit printsummary="true"      <junit printsummary="true"
979             showoutput="true"             showoutput="true"
# Line 807  Line 1026 
1026               link="${java7.api.url}"               link="${java7.api.url}"
1027               overview="${4jdk7src.dir}/intro.html"               overview="${4jdk7src.dir}/intro.html"
1028               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1029               sourcepath="${4jdk7src.dir}:${jdk7src.dir}"               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1030               classpath=""               classpath=""
1031               executable="${javadoc7}">               executable="${javadoc7}"
1032                 failonerror = "true">
1033        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1034          <include name="**/*.java"/>          <include name="**/*.java"/>
1035        </fileset>        </fileset>
# Line 863  Line 1083 
1083             target="5"             target="5"
1084             includeAntRuntime="false"             includeAntRuntime="false"
1085             includeJavaRuntime="false"             includeJavaRuntime="false"
1086               encoding="ASCII"
1087             executable="${javac7}"             executable="${javac7}"
1088             fork="true">             fork="true">
1089    
# Line 901  Line 1122 
1122               packagenames="jsr166x.*"               packagenames="jsr166x.*"
1123               link="${java.api.url}"               link="${java.api.url}"
1124               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1125               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1126               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1127               source="5"               source="5"
1128               executable="${javadoc7}">               executable="${javadoc7}"
1129                 failonerror = "true">
1130        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1131        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1132    
# Line 955  Line 1177 
1177             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1178             includeAntRuntime="false"             includeAntRuntime="false"
1179             includeJavaRuntime="false"             includeJavaRuntime="false"
1180               encoding="ASCII"
1181             executable="${javac7}"             executable="${javac7}"
1182             fork="true">             fork="true">
1183    
# Line 993  Line 1216 
1216               packagenames="jsr166y.*"               packagenames="jsr166y.*"
1217               link="${java.api.url}"               link="${java.api.url}"
1218               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1219               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1220               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1221               source="6"               source="6"
1222               executable="${javadoc7}">               executable="${javadoc7}"
1223                 failonerror = "true">
1224        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1225        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1226    
# Line 1048  Line 1272 
1272             target="6"             target="6"
1273             includeAntRuntime="false"             includeAntRuntime="false"
1274             includeJavaRuntime="false"             includeJavaRuntime="false"
1275               encoding="ASCII"
1276             executable="${javac7}"             executable="${javac7}"
1277             fork="true">             fork="true">
1278    
# Line 1086  Line 1311 
1311               packagenames="extra166y.*"               packagenames="extra166y.*"
1312               link="${java.api.url}"               link="${java.api.url}"
1313               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1314               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1315               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1316               source="6"               source="6"
1317               executable="${javadoc7}">               executable="${javadoc7}">
# Line 1207  Line 1432 
1432               packagenames="jsr166e.*"               packagenames="jsr166e.*"
1433               link="${java.api.url}"               link="${java.api.url}"
1434               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1435               sourcepath="${topsrc.dir}:${jdk6src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1436               source="${build.jsr166e.java.version}"               source="${build.jsr166e.java.version}"
1437               executable="${javadoc7}">               executable="${javadoc7}"
1438                 failonerror = "true">
1439        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1440        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
1441    
# Line 1295  Line 1521 
1521    </target>    </target>
1522    
1523    
1524    <!-- ==============================================================
1525      Experimental errorprone support - http://errorprone.info
1526      You may need to bring your own errorprone jar.
1527    =================================================================== -->
1528      <target name="errorprone"
1529              depends="clean, configure-compiler"
1530              description="Run errorprone over jsr166 source code">
1531    
1532        <local name="destdir"/>
1533        <property name="destdir" value="${build.classes.dir}/java.base"/>
1534        <mkdir dir="${destdir}"/>
1535    
1536        <javac srcdir="${src.dir}"
1537               destdir="${destdir}"
1538               debug="${build.debug}"
1539               debuglevel="${build.debuglevel}"
1540               deprecation="${build.deprecation}"
1541               classpath=""
1542               includeAntRuntime="false"
1543               includeJavaRuntime="false"
1544               encoding="ASCII"
1545               executable="${build.main.javac}"
1546               fork="true">
1547    
1548          <include name="**/*.java"/>
1549          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1550          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1551          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1552          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1553          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1554          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1555          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1556          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1557          <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1558          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1559          <compilerarg value="-Xplugin:ErrorProne
1560                              -Xep:IdentityBinaryExpression:WARN
1561                              -Xep:MissingOverride:OFF
1562                              -Xep:MixedArrayDimensions:WARN
1563                              -Xep:RemoveUnusedImports:ERROR
1564                              -Xep:MethodCanBeStatic:WARN"/>
1565          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1566          <compilerarg value="-Xprefer:source"/>
1567          <compilerarg value="-XDignore.symbol.file=true"/>
1568          <compilerarg value="-Xlint:all"/>
1569          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1570          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1571          <compilerarg line="${build.args}"/>
1572        </javac>
1573    
1574        <jar destfile="${product.jar}">
1575          <fileset dir="${destdir}"/>
1576        </jar>
1577    
1578        <run-tck-tests
1579          target="${build.main.java.version}"
1580          workdir="${build.dir}"
1581          classes="${product.jar}">
1582          <javac-elements>
1583            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1584            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1585            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1586            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1587            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1588            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1589            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1590            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1591            <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1592            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1593            <compilerarg value="-Xplugin:ErrorProne
1594                                -Xep:IdentityBinaryExpression:WARN
1595                                -Xep:BoxedPrimitiveConstructor:OFF
1596                                -Xep:HashtableContains:OFF
1597                                -Xep:ModifyingCollectionWithItself:OFF
1598                                -Xep:MissingOverride:OFF
1599                                -Xep:MixedArrayDimensions:WARN
1600                                -Xep:RemoveUnusedImports:ERROR
1601                                -Xep:MethodCanBeStatic:WARN"/>
1602            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1603          </javac-elements>
1604        </run-tck-tests>
1605      </target>
1606    
1607    
1608    <!-- ==============================================================
1609      Running guava tests against jsr166 code
1610    =================================================================== -->
1611    
1612    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1613    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1614    <!-- <property name="guava.version" value="21.0"/> -->
1615    
1616    <!-- HOWTO debug print a path id -->
1617    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1618    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1619    
1620    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1621    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1622    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1623    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1624    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1625    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1626    
1627    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1628    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1629    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1630    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1631    
1632    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1633    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1634    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1635    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1636    
1637    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1638    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1639    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1640    
1641      <target name="init-ivy">
1642        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1643             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1644        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1645                 classpath="${build.dir}/ivy.jar"/>
1646      </target>
1647    
1648      <target name="guava-tests" depends="jar, init-ivy"
1649              description="Guava tests run against jsr166 collections">
1650        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1651        <mkdir dir="${guava.dir}"/>
1652        <ivy:retrieve pathid="guava.testlib.classpath"
1653          type="jar,bundle" inline="true" conf="default,master"
1654          pattern="${guava.dir}/[artifact].[ext]"
1655          organisation="com.google.guava" module="guava-testlib"/>
1656        <property name="guava.version" value="21.0"/>
1657        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1658             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1659        <junit printsummary="true" showoutput="true" haltonfailure="true"
1660               jvm="${java9}" fork="true">
1661          <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1662          <formatter type="brief"/>
1663          <classpath>
1664            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1665            <path refid="guava.testlib.classpath"/>
1666          </classpath>
1667    
1668          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1669          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1670        </junit>
1671      </target>
1672    
1673  </project>  </project>

Legend:
Removed from v.1.197  
changed lines
  Added in v.1.238

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8