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

Diff of /jsr166/build.xml

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

revision 1.242 by jsr166, Sat Apr 1 21:47:32 2017 UTC revision 1.301 by jsr166, Sat Aug 10 16:48:04 2019 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"
3      xmlns:unless="ant:unless"
4    xmlns:ivy="antlib:org.apache.ivy.ant">    xmlns:ivy="antlib:org.apache.ivy.ant">
5    
6    <description>    <description>
# Line 19  Line 20 
20    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
21    hierarchy containing:    hierarchy containing:
22    $HOME/jdk/jdk8    $HOME/jdk/jdk8
23    $HOME/jdk/jdk9    $HOME/jdk/jdk11
24    $HOME/jdk/jdk10    $HOME/jdk/jdk12
25      $HOME/jdk/jdk13
26      $HOME/jdk/jdk14
27    where each of the above is a JDK or a symlink to same, and    where each of the above is a JDK or a symlink to same, and
28    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
29    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk11
30    $HOME/jdk/src/jdk10    $HOME/jdk/src/jdk12
31      $HOME/jdk/src/jdk13
32      $HOME/jdk/src/jdk14
33    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
34    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
35    
36    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
37    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
38    for $N in 8 9 10 ...    for $N in 8 .. 14 ...
39    
40    As of 2016-03, the sources in src/main are for jdk9+ only.    As of 2016-03, the sources in src/main are for jdk9+ only.
41      As of 2019-08, the sources in src/main are for jdk11+ only.
42  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
43    </description>    </description>
44    
# Line 50  Line 56 
56    
57    
58    <!-- Compilation options -->    <!-- Compilation options -->
   <property name="build.sourcelevel"    value="6"/>  
59    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
60    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
61    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
# Line 101  Line 106 
106      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
107        unless:set="have.java.base"/>        unless:set="have.java.base"/>
108      <local name="modules"/>      <local name="modules"/>
109      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/>
110      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
111      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
112      <path id="bootclasspath@{v}" unless:set="modules">      <path id="bootclasspath@{v}" unless:set="modules">
# Line 127  Line 132 
132      </sequential>      </sequential>
133    </macrodef>    </macrodef>
134    
   <defjdklocations v="6"/>  
   <defjdklocations v="7"/>  
135    <defjdklocations v="8"/>    <defjdklocations v="8"/>
136    <defjdklocations v="9"/>    <defjdklocations v="11"/>
137    <defjdklocations v="10"/>    <defjdklocations v="12"/>
138      <defjdklocations v="13"/>
139      <defjdklocations v="14"/>
140    
141    <!-- Source locations -->    <!-- Source locations -->
142    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
143    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
144    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
145    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
   <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>  
146    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
147    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
148    <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>    <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
149    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg13.src.dir"      location="${test.src.dir}/jtreg"/>
150      <property name="jtreg14.src.dir"      location="${test.src.dir}/jtreg"/>
151      <property name="jtreg.src.dir"        location="${jtreg11.src.dir}"/>
152    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
153    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
154    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
# Line 181  Line 187 
187    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
188    
189    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
190    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
191    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>    <property name="java5.docroot.url"  value="https://docs.oracle.com/javase/1.5.0/docs"/>
192    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>    <property name="java6.docroot.url"  value="https://docs.oracle.com/javase/6/docs"/>
193    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java7.docroot.url"  value="https://docs.oracle.com/javase/7/docs"/>
194    <!-- The expected canonical location does not yet exist as of 2016-04 -->    <property name="java8.docroot.url"  value="https://docs.oracle.com/javase/8/docs"/>
195    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
196    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>    <property name="java12.docroot.url" value="https://docs.oracle.com/en/java/javase/12/docs"/>
197    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- The location of jdk early access docs (RIP) -->
198    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
199    <!--   <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> -->
200      <property name="java13.docroot.url" value="https://download.java.net/java/early_access/jdk13/docs"/>
201      <property name="java14.docroot.url" value="https://download.java.net/java/early_access/jdk14/docs"/>
202      <!-- Default jdk doc location (latest stable LTS release seems best) -->
203      <property name="java.docroot.url"   value="${java11.docroot.url}"/>
204    
205    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
   <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>  
   <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>  
   <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>  
206    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
207    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
208      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
209      <property name="java13.api.url"     value="${java13.docroot.url}/api/"/>
210      <property name="java14.api.url"     value="${java14.docroot.url}/api/"/>
211    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
212    
213    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 229  Line 240 
240    
241      <local name="modules"/>      <local name="modules"/>
242      <condition property="modules">      <condition property="modules">
243        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
244      </condition>      </condition>
245    
246      <local name="use-doclint"/>      <local name="use-doclint"/>
# Line 296  Line 307 
307    </macrodef>    </macrodef>
308    
309    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
310    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
311      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
312        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
313      </patternset>    <macrodef name="defjtregtests">
314    </fileset>      <attribute name="v"/>
315        <sequential>
316    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
317      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
318        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
319      </patternset>          </patternset>
320    </fileset>        </fileset>
321        </sequential>
322      </macrodef>
323    
324    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="14"/>
325      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="13"/>
326        <include name="**/*.java"/>    <defjtregtests v="12"/>
327      </patternset>    <defjtregtests v="11"/>
328    </fileset>    <defjtregtests v="8"/>
329    
330    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
331    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
332    
333    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
334      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->      <!-- ant -Djtreg11.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
     <attribute name="source" default="7"/>  
335      <attribute name="target"/>      <attribute name="target"/>
336      <attribute name="workdir"/>      <attribute name="workdir"/>
337      <attribute name="classes"/>      <attribute name="classes"/>
338        <attribute name="verbose" default="${jtreg.verbose}"/>
339      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
340        <element name="jtreg-elements" optional="true"/>
341    
342      <sequential>      <sequential>
343    
# Line 332  Line 346 
346    
347      <local name="modules"/>      <local name="modules"/>
348      <condition property="modules">      <condition property="modules">
349        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
350      </condition>      </condition>
351    
352      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
# Line 341  Line 355 
355             workDir="@{workdir}/JTwork">             workDir="@{workdir}/JTwork">
356        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
357        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
358        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
359        <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
360        <arg value="-agentvm"/>        <arg value="-agentvm"/>
361        <arg value="-noreport"/>        <arg value="-noreport"/>
362        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:@{verbose}"/>
363        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
364        <arg value="-automatic"/>        <arg value="-automatic"/>
365        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
366        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
367        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
368          <jtreg-elements/>
369      </jtreg>      </jtreg>
370      </sequential>      </sequential>
371    </macrodef>    </macrodef>
# Line 361  Line 376 
376    </path>    </path>
377    
378    <!-- Support @jls tag, used in jdk8+ javadoc -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
379      <!-- TODO: switch to @jls taglet, as supported by jdk14+ javadoc -->
380    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
381    <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;:"/>
382    
383    <!-- Main targets -->    <!-- Main targets -->
384    
385    <property name="build.main.java.version" value="9"/>    <!-- Default values: may seem strange ... -->
386    <property name="build.main.javac" value="${javac9}"/>    <!-- At runtime, target latest LTS, i.e. jdk11 -->
387      <!-- But at build time, target jdk9, for maximal binary portability -->
388      <!-- ButButBut as of 2019-08, target jdk11 at build time -->
389      <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
390        o override-methods=summary
391        o {@systemProperty ...}
392        o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
393        o 8202628: javadoc generates bad links in TestModules.java
394        -->
395      <property name="java.runtime.target" value="11"/>
396      <property name="build.main.java" value="${java11}"/>
397      <property name="build.main.javac" value="${javac11}"/>
398      <property name="build.main.javadoc" value="${javadoc12}"/>
399      <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
400    
401    <target name="dists"    <target name="dists"
402            depends="dist, 4jdk8dist"            depends="dist, 4jdk8dist"
403            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
404            <!--            <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
               depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"  
           -->  
405    
406    <target name="compile"    <target name="compile"
407            depends="configure-compiler"            depends="configure-compiler"
408            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
409    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
410      <local name="destdir"/>      <local name="destdir"/>
411      <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>      <property name="destdir" value="${build.classes.dir}/java.base"/>
     <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>  
412    
413      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
414    
# Line 407  Line 425 
425             fork="true">             fork="true">
426    
427        <include name="**/*.java"/>        <include name="**/*.java"/>
428        <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
429        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
430        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
431        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all,-removal"/>
432        <compilerarg value="-Werror"/>        <compilerarg line="--doclint-format html5"/>
433        <compilerarg value="-Xdoclint:all/protected,reference/private"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
434          <compilerarg value="-Xdoclint/package:java.util.*"/>
435          <compilerarg value="-Werror"/>
436        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
437        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
438    
# Line 451  Line 471 
471  <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->  <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
472      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
473               packagenames="none"               packagenames="none"
474               link="${java9.api.url}"               link="${java.api.url}"
475               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
476               access="${build.javadoc.access}"               access="${build.javadoc.access}"
477               sourcepath="${src.dir}"               sourcepath="${src.dir}"
478               classpath=""               classpath=""
479               executable="${javadoc9}">               source="${build.main.javadoc.source}"
480                 executable="${build.main.javadoc}">
481    <!-- TODO: JDK-8214571 failonerror = "true" -->
482        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
483          <include name="**/*.java"/>          <include name="**/*.java"/>
484        </fileset>        </fileset>
485        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
486        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
487        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
488          <arg value="-html5"/>
489        <arg value="--patch-module=java.base=${src.dir}"/>        <arg value="--patch-module=java.base=${src.dir}"/>
490        <arg value="-tag"/>  <!-- old school frames via docs/index.html?overview-summary.html -->
491        <arg value="${javadoc.jls.option}"/>  <!-- TODO: - -frames no longer a supported option in jdk13+ -->
492  <!-- @apiNote currently unused -->        <arg value="--frames"/>
493  <!--       <arg value="-tag"/> -->        <arg value="--override-methods=summary"/>
494  <!--       <arg value="apiNote:a:API Note:"/> -->        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
495        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
496        <arg value="implSpec:a:Implementation Requirements:"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
497        <arg value="-tag"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
       <arg value="implNote:a:Implementation Note:"/>  
498  <!-- tags added in jdk9: currently unused -->  <!-- tags added in jdk9: currently unused -->
499  <!--       <arg value="-tag"/> -->  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
500  <!--       <arg value="revised:X"/> -->  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
 <!--       <arg value="-tag"/> -->  
 <!--       <arg value="spec:X"/> -->  
501      </javadoc>      </javadoc>
502    </target>    </target>
503    
# Line 487  Line 507 
507            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
508    
509    
   <target name="release"  
           depends="dist"  
           description="Puts entire CVS tree, plus distribution productions, in a jar">  
   
     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>  
   
     <jar basedir="${basedir}" destfile="${release.jar}">  
       <!-- <exclude name="build/**"/> -->  
       <exclude name="${release.jar}"/>  
       <exclude name="user.properties"/>  
       <exclude name="etc/notes/**"/>  
       <exclude name="src/emulation/**"/>  
       <exclude name="**/SyntaxTest.java"/>  
       <exclude name="**/SuperfluousAbstract.java"/>  
       <manifest>  
         <attribute name="Built-By" value="${user.name}"/>  
         <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>  
       </manifest>  
     </jar>  
   </target>  
   
   
510    <target name="clean"    <target name="clean"
511            description="Removes all build products">            description="Removes all build products">
512      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
# Line 537  Line 535 
535            description="Runs tck tests for src/main directly">            description="Runs tck tests for src/main directly">
536    
537      <run-tck-tests      <run-tck-tests
538        target="${build.main.java.version}"        target="${java.runtime.target}"
539        workdir="${build.dir}"        workdir="${build.dir}"
540        classes="${product.jar}">        classes="${product.jar}">
541        <javac-elements>        <javac-elements>
# Line 571  Line 569 
569            depends="jar"            depends="jar"
570            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
571      <run-jtreg-tests      <run-jtreg-tests
572         target="${build.main.java.version}"         target="${java.runtime.target}"
573         workdir="${build.dir}"         workdir="${build.dir}"
574         classes="${product.jar}"/>         classes="${product.jar}"/>
575    </target>    </target>
# Line 580  Line 578 
578            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
579            description="Runs tck and jtreg tests for src/main"/>            description="Runs tck and jtreg tests for src/main"/>
580    
581  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->    <target name="test-version-permutations"
582              depends="test11, test12, test13, test14, test11-12, test11-13, test11-14, clean, test, docs">
583      </target>
584    
585  <!--     <antcall target="jtreg"> -->    <!-- jdk9 is unsupported as of 2019-08 -->
586  <!--       <param name="build.main.java.version" value="8"/> -->  <!--   <target name="test9"> -->
587  <!--       <param name="build.main.javac" value="${javac8}"/> -->  <!--     <antcall target="clean"/> -->
588    <!--     <antcall> -->
589    <!--       <param name="java.runtime.target" value="9"/> -->
590    <!--       <param name="build.main.javac" value="${javac9}"/> -->
591    <!--       <param name="build.main.javadoc" value="${javadoc12}"/> -->
592    <!--       <param name="build.main.javadoc.source" value="9"/> -->
593    <!--       <target name="test"/> -->
594    <!--       <target name="docs"/> -->
595  <!--     </antcall> -->  <!--     </antcall> -->
   
596  <!--   </target> -->  <!--   </target> -->
597    
598  <!--   <target name="test89" -->    <!-- jdk10 is unsupported as of 2019-08 -->
599  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->  <!--   <target name="test10"> -->
   
600  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
601  <!--     <antcall target="test"> -->  <!--     <antcall> -->
602  <!--       <param name="build.main.java.version" value="8"/> -->  <!--       <param name="java.runtime.target" value="10"/> -->
603  <!--       <param name="build.main.javac" value="${javac8}"/> -->  <!--       <param name="build.main.javac" value="${javac10}"/> -->
604    <!--       <param name="build.main.javadoc" value="${javadoc12}"/> -->
605    <!--       <param name="build.main.javadoc.source" value="10"/> -->
606    <!--       <target name="test"/> -->
607    <!--       <target name="docs"/> -->
608  <!--     </antcall> -->  <!--     </antcall> -->
609    <!--   </target> -->
610    
611  <!--     <antcall target="clean"/> -->    <target name="test11">
612  <!--     <antcall target="test"> -->      <antcall target="clean"/>
613  <!--       <param name="build.main.java.version" value="9"/> -->      <antcall>
614  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="java.runtime.target" value="11"/>
615  <!--     </antcall> -->        <param name="build.main.javac" value="${javac11}"/>
616          <param name="build.main.javadoc" value="${javadoc12}"/>
617          <param name="build.main.javadoc.source" value="11"/>
618          <target name="test"/>
619          <target name="docs"/>
620        </antcall>
621      </target>
622    
623  <!--   </target> -->    <target name="test12">
624        <antcall target="clean"/>
625        <antcall>
626          <param name="java.runtime.target" value="12"/>
627          <param name="build.main.javac" value="${javac12}"/>
628          <param name="build.main.javadoc" value="${javadoc12}"/>
629          <param name="build.main.javadoc.source" value="12"/>
630          <target name="test"/>
631          <target name="docs"/>
632        </antcall>
633      </target>
634    
635      <target name="test13">
636        <antcall target="clean"/>
637        <antcall>
638          <param name="java.runtime.target" value="13"/>
639          <param name="build.main.javac" value="${javac13}"/>
640          <param name="build.main.javadoc" value="${javadoc13}"/>
641          <param name="build.main.javadoc.source" value="13"/>
642          <target name="test"/>
643          <target name="docs"/>
644        </antcall>
645      </target>
646    
647      <target name="test14">
648        <antcall target="clean"/>
649        <antcall>
650          <param name="java.runtime.target" value="14"/>
651          <param name="build.main.javac" value="${javac14}"/>
652          <param name="build.main.javadoc" value="${javadoc14}"/>
653          <param name="build.main.javadoc.source" value="14"/>
654          <target name="test"/>
655          <target name="docs"/>
656        </antcall>
657      </target>
658    
659      <target name="test11-12">
660        <antcall target="clean"/>
661        <antcall>
662          <param name="java.runtime.target" value="12"/>
663          <param name="build.main.javac" value="${javac11}"/>
664          <param name="build.main.javadoc" value="${javadoc12}"/>
665          <param name="build.main.javadoc.source" value="11"/>
666          <target name="test"/>
667          <target name="docs"/>
668        </antcall>
669      </target>
670    
671      <target name="test11-13">
672        <antcall target="clean"/>
673        <antcall>
674          <param name="java.runtime.target" value="13"/>
675          <param name="build.main.javac" value="${javac11}"/>
676          <param name="build.main.javadoc" value="${javadoc13}"/>
677          <param name="build.main.javadoc.source" value="11"/>
678          <target name="test"/>
679          <target name="docs"/>
680        </antcall>
681      </target>
682    
683      <target name="test11-14">
684        <antcall target="clean"/>
685        <antcall>
686          <param name="java.runtime.target" value="14"/>
687          <param name="build.main.javac" value="${javac11}"/>
688          <param name="build.main.javadoc" value="${javadoc14}"/>
689          <param name="build.main.javadoc.source" value="11"/>
690          <target name="test"/>
691          <target name="docs"/>
692        </antcall>
693      </target>
694    
695    
696    <target name="configure-compiler">    <target name="configure-compiler">
# Line 628  Line 713 
713    </target>    </target>
714    
715    
   
   <!-- Various demos and test programs -->  
   
   
   <!-- description="Benchmark from Doug Lea's AQS paper" -->  
   <target name="loops" depends="configure-compiler">  
   
     <mkdir dir="${build.loops.dir}"/>  
   
     <javac srcdir="${loops.src.dir}"  
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
            target="${build.sourcelevel}"  
          encoding="ASCII"  
              fork="true">  
   
       <compilerarg line="${build.args}"/>  
       <classpath refid="loops.classpath"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
   
     </javac>  
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   </target>  
   
   
716    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
717            description="Compiles all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
718    
# Line 672  Line 726 
726             includeAntRuntime="false"             includeAntRuntime="false"
727             includeJavaRuntime="false"             includeJavaRuntime="false"
728             encoding="ASCII"             encoding="ASCII"
729             executable="${javac9}"             executable="${build.main.javac}"
730             fork="true">             fork="true">
731    
732        <include name="*.java"/>        <include name="*.java"/>
# Line 805  Line 859 
859               access="${build.javadoc.access}"               access="${build.javadoc.access}"
860               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
861               classpath=""               classpath=""
862                 source="8"
863               executable="${javadoc8}"               executable="${javadoc8}"
864               failonerror = "true">               failonerror = "true">
865        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 812  Line 867 
867        </fileset>        </fileset>
868        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
869        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
870        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
871        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
872  <!-- @apiNote currently unused -->        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
873  <!--       <arg value="-tag"/> -->  <!-- @apiNote tag currently unused -->
874  <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->  <!--  <arg value="-tag"/> <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
       <arg value="-tag"/>  
       <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>  
       <arg value="-tag"/>  
       <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  
875      </javadoc>      </javadoc>
876    </target>    </target>
877    
# Line 1350  Line 1401 
1401    
1402  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1403    
1404    <target name="lint">  <!--   <target name="lint"> -->
1405      <antcall target="dists">  <!--     <antcall target="dists"> -->
1406        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1407      </antcall>  <!--     </antcall> -->
1408    </target>  <!--   </target> -->
1409    
1410  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1411    <target name="lint-private">    <target name="doclint-private">
1412      <antcall target="dist">      <antcall target="dist">
1413        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1414      </antcall>      </antcall>
# Line 1365  Line 1416 
1416    
1417    
1418  <!-- ==============================================================  <!-- ==============================================================
1419    Experimental errorprone support - http://errorprone.info    Experimental errorprone support
1420    You may need to bring your own errorprone jar.    https://errorprone.info
1421      https://errorprone.info/docs/installation
1422      https://github.com/google/error-prone/issues/1143
1423  =================================================================== -->  =================================================================== -->
1424      <path id="errorprone.processorpath.path">
1425        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1426        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1427        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1428        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1429      </path>
1430      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1431      <property name="errorprone.jsr166.user.flags" value=""/>
1432      <property name="errorprone.jsr166.flags"
1433                value="-Xep:HashtableContains:OFF
1434                       -Xep:JdkObsolete:OFF
1435                       -Xep:MissingOverride:OFF
1436                       -Xep:MissingFail:OFF
1437                       -Xep:ThreadPriorityCheck:OFF
1438                       -Xep:MixedArrayDimensions:ERROR
1439                       -Xep:RemoveUnusedImports:ERROR
1440                       -Xep:EmptyIf:ERROR
1441                       -Xep:MultipleTopLevelClasses:ERROR
1442                       -Xep:ClassName:ERROR
1443                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1444                       -Xep:RedundantThrows:ERROR
1445                       -Xep:IdentityBinaryExpression:WARN
1446                       -Xep:ConstructorInvokesOverridable:WARN
1447                       -Xep:MethodCanBeStatic:WARN
1448                       ${errorprone.jsr166.user.flags}"/>
1449      <!-- -Xep:WildcardImport:ERROR -->
1450      <property name="errorprone.jsr166.test.flags"
1451                value="-Xep:StringSplitter:OFF
1452                       -Xep:BoxedPrimitiveConstructor:OFF
1453                       -Xep:ModifyingCollectionWithItself:OFF"/>
1454      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1455    <target name="errorprone"    <target name="errorprone"
1456            depends="clean, configure-compiler"            depends="clean, configure-compiler"
1457            description="Run errorprone over jsr166 source code (experimental)">            description="Run errorprone over jsr166 source code (experimental)">
# Line 1389  Line 1473 
1473             fork="true">             fork="true">
1474    
1475        <include name="**/*.java"/>        <include name="**/*.java"/>
1476        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>        <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1477        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>        <compilerarg value="-J--illegal-access=permit"/>
1478        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>        <compilerarg value="-XDcompilePolicy=simple"/>
1479        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>        <compilerarg value="-processorpath"/>
1480        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>        <compilerarg pathref="errorprone.processorpath.path"/>
       <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>  
       <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>  
       <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>  
       <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>  
       <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>  
1481        <compilerarg value="-Xplugin:ErrorProne        <compilerarg value="-Xplugin:ErrorProne
1482                            -Xep:IdentityBinaryExpression:WARN                            ${errorprone.jsr166.flags}"/>
                           -Xep:MissingOverride:OFF  
                           -Xep:MixedArrayDimensions:WARN  
                           -Xep:RemoveUnusedImports:ERROR  
                           -Xep:ClassName:ERROR  
                           -Xep:MultipleTopLevelClasses:ERROR  
                           -Xep:EmptyIf:ERROR  
                           -Xep:LongLiteralLowerCaseSuffix:ERROR  
                           -Xep:ArgumentParameterSwap:ERROR  
                           -Xep:RedundantThrows:ERROR  
                           -Xep:MethodCanBeStatic:WARN"/>  
1483        <compilerarg value="--patch-module=java.base=${src.dir}"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
1484        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
1485        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
# Line 1425  Line 1494 
1494      </jar>      </jar>
1495    
1496      <run-tck-tests      <run-tck-tests
1497        target="${build.main.java.version}"        target="${java.runtime.target}"
1498        workdir="${build.dir}"        workdir="${build.dir}"
1499        classes="${product.jar}">        classes="${product.jar}">
1500        <javac-elements>        <javac-elements>
1501          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1502          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>          <compilerarg value="-J--illegal-access=permit"/>
1503          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>          <compilerarg value="-XDcompilePolicy=simple"/>
1504          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>          <compilerarg line="-processorpath ${errorprone.processorpath}"/>
         <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>  
         <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>  
         <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>  
         <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>  
         <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>  
         <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>  
1505          <compilerarg value="-Xplugin:ErrorProne          <compilerarg value="-Xplugin:ErrorProne
1506                              -Xep:IdentityBinaryExpression:WARN                              ${errorprone.jsr166.flags}
1507                              -Xep:BoxedPrimitiveConstructor:OFF                              ${errorprone.jsr166.test.flags}"/>
                             -Xep:HashtableContains:OFF  
                             -Xep:ModifyingCollectionWithItself:OFF  
                             -Xep:MissingOverride:OFF  
                             -Xep:MixedArrayDimensions:WARN  
                             -Xep:RemoveUnusedImports:ERROR  
                             -Xep:ClassName:ERROR  
                             -Xep:MultipleTopLevelClasses:ERROR  
                             -Xep:EmptyIf:ERROR  
                             -Xep:LongLiteralLowerCaseSuffix:ERROR  
                             -Xep:ArgumentParameterSwap:ERROR  
                             -Xep:RedundantThrows:ERROR  
                             -Xep:MethodCanBeStatic:WARN"/>  
1508          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1509        </javac-elements>        </javac-elements>
1510      </run-tck-tests>      </run-tck-tests>
1511    </target>    </target>
1512    
1513      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1514      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1515      <target name="errorprone-jtreg"
1516              depends="jar"
1517              description="Run errorprone over jtreg tests (experimental)">
1518    
1519        <run-jtreg-tests
1520           target="${java.runtime.target}"
1521           workdir="${build.dir}"
1522           classes="${product.jar}"
1523           verbose="all">
1524          <jtreg-elements>
1525            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1526            <arg value="-javacoption:-processorpath"/>
1527            <arg value="-javacoption:${errorprone.processorpath}"/>
1528            <arg value="-javacoption:-Xplugin:ErrorProne
1529                                ${errorprone.jsr166.flags}
1530                                ${errorprone.jsr166.test.flags}
1531                                -Xep:MultipleTopLevelClasses:WARN
1532                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1533          </jtreg-elements>
1534        </run-jtreg-tests>
1535      </target>
1536    
1537    
1538  <!-- ==============================================================  <!-- ==============================================================
1539    Running guava tests against jsr166 code    Running guava tests against jsr166 code
# Line 1512  Line 1587 
1587      <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"      <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1588           dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>           dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1589      <junit printsummary="true" showoutput="true" haltonfailure="true"      <junit printsummary="true" showoutput="true" haltonfailure="true"
1590             jvm="${java9}" fork="true">             jvm="${build.main.java}" fork="true">
1591        <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>        <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1592        <formatter type="brief"/>        <formatter type="brief"/>
1593        <classpath>        <classpath>
1594          <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>          <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>

Legend:
Removed from v.1.242  
changed lines
  Added in v.1.301

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