git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@720156 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -544,6 +544,10 @@ Other changes: | |||||
| break the build if the archive doesn't exist. | break the build if the archive doesn't exist. | ||||
| Bugzilla Report 46091. | Bugzilla Report 46091. | ||||
| * <javadoc> has new attributes that correspond to the | |||||
| -docfilessubdirs and -excludedocfilessubdir command line arguments. | |||||
| Bugzilla Report 34455. | |||||
| Changes from Ant 1.7.0 TO Ant 1.7.1 | Changes from Ant 1.7.0 TO Ant 1.7.1 | ||||
| ============================================= | ============================================= | ||||
| @@ -487,6 +487,21 @@ to <javadoc> using <tt>classpath</tt>, <tt>classpathref</tt> attributes or | |||||
| <td align="center" valign="top">all</td> | <td align="center" valign="top">all</td> | ||||
| <td align="center" valign="top">No</td> | <td align="center" valign="top">No</td> | ||||
| </tr> | </tr> | ||||
| <tr> | |||||
| <td valign="top">docfilessubdirs</td> | |||||
| <td valign="top">Enables deep-copying of <code>doc-files</code> | |||||
| subdirectories. Defaults to false. <em>since Ant 1.8.0</em>.</td> | |||||
| <td align="center" valign="top">1.4</td> | |||||
| <td align="center" valign="top">No</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">excludedocfilessubdir</td> | |||||
| <td valign="top">Colon-separated list of <code>doc-files</code>' | |||||
| subdirectories to exclude if <code>docfilessubdirs</code> is | |||||
| true. <em>since Ant 1.8.0</em>.</td> | |||||
| <td align="center" valign="top">1.4</td> | |||||
| <td align="center" valign="top">No</td> | |||||
| </tr> | |||||
| </table> | </table> | ||||
| <h4><a name="groupattribute">Format of the group attribute</a></h4> | <h4><a name="groupattribute">Format of the group attribute</a></h4> | ||||
| @@ -449,6 +449,8 @@ public class Javadoc extends Task { | |||||
| private String noqualifier; | private String noqualifier; | ||||
| private boolean includeNoSourcePackages = false; | private boolean includeNoSourcePackages = false; | ||||
| private String executable = null; | private String executable = null; | ||||
| private boolean docFilesSubDirs = false; | |||||
| private String excludeDocFilesSubDir = null; | |||||
| private ResourceCollectionContainer nestedSourceFiles | private ResourceCollectionContainer nestedSourceFiles | ||||
| = new ResourceCollectionContainer(); | = new ResourceCollectionContainer(); | ||||
| @@ -1632,6 +1634,25 @@ public class Javadoc extends Task { | |||||
| this.includeNoSourcePackages = b; | this.includeNoSourcePackages = b; | ||||
| } | } | ||||
| /** | |||||
| * Enables deep-copying of <code>doc-files</code> directories. | |||||
| * | |||||
| * @since Ant 1.8.0 | |||||
| */ | |||||
| public void setDocFilesSubDirs(boolean b) { | |||||
| docFilesSubDirs = b; | |||||
| } | |||||
| /** | |||||
| * Colon-separated list of <code>doc-files</code> subdirectories | |||||
| * to skip if {@link #setDocFilesSubDirs docFilesSubDirs is true}. | |||||
| * | |||||
| * @since Ant 1.8.0 | |||||
| */ | |||||
| public void setExcludeDocFilesSubDir(String s) { | |||||
| excludeDocFilesSubDir = s; | |||||
| } | |||||
| /** | /** | ||||
| * Execute the task. | * Execute the task. | ||||
| * @throws BuildException on error | * @throws BuildException on error | ||||
| @@ -1673,6 +1694,7 @@ public class Javadoc extends Task { | |||||
| doLinks(toExecute); // links arguments | doLinks(toExecute); // links arguments | ||||
| doGroup(toExecute); // group attribute | doGroup(toExecute); // group attribute | ||||
| doGroups(toExecute); // groups attribute | doGroups(toExecute); // groups attribute | ||||
| doDocFilesSubDirs(toExecute); // docfilessubdir attribute | |||||
| doJava14(toExecute); | doJava14(toExecute); | ||||
| if (breakiterator && (doclet == null || JAVADOC_5)) { | if (breakiterator && (doclet == null || JAVADOC_5)) { | ||||
| @@ -2131,6 +2153,17 @@ public class Javadoc extends Task { | |||||
| } | } | ||||
| } | } | ||||
| private void doDocFilesSubDirs(Commandline toExecute) { | |||||
| if (docFilesSubDirs) { | |||||
| toExecute.createArgument().setValue("-docfilessubdirs"); | |||||
| if (excludeDocFilesSubDir != null | |||||
| && excludeDocFilesSubDir.trim().length() > 0) { | |||||
| toExecute.createArgument().setValue("-excludedocfilessubdir"); | |||||
| toExecute.createArgument().setValue(excludeDocFilesSubDir); | |||||
| } | |||||
| } | |||||
| } | |||||
| private void doSourceAndPackageNames( | private void doSourceAndPackageNames( | ||||
| Commandline toExecute, | Commandline toExecute, | ||||
| Vector packagesToDoc, | Vector packagesToDoc, | ||||
| @@ -18,7 +18,7 @@ | |||||
| <project default="antunit" xmlns:au="antlib:org.apache.ant.antunit"> | <project default="antunit" xmlns:au="antlib:org.apache.ant.antunit"> | ||||
| <import file="../antunit-base.xml" /> | <import file="../antunit-base.xml" /> | ||||
| <target name="testBottomWithLineBreaksWithFile"> | |||||
| <target name="-makeTestClass"> | |||||
| <mkdir dir="${input}/test"/> | <mkdir dir="${input}/test"/> | ||||
| <echo file="${input}/test/A.java"><![CDATA[ | <echo file="${input}/test/A.java"><![CDATA[ | ||||
| package test; | package test; | ||||
| @@ -33,6 +33,9 @@ public class A { | |||||
| public void foo(String bar) {} | public void foo(String bar) {} | ||||
| } | } | ||||
| ]]></echo> | ]]></echo> | ||||
| </target> | |||||
| <target name="testBottomWithLineBreaksWithFile" depends="-makeTestClass"> | |||||
| <javadoc destdir="${output}" useexternalfile="true"> | <javadoc destdir="${output}" useexternalfile="true"> | ||||
| <fileset dir="${input}"/> | <fileset dir="${input}"/> | ||||
| <bottom><![CDATA[ | <bottom><![CDATA[ | ||||
| @@ -42,4 +45,46 @@ Hello World | |||||
| </javadoc> | </javadoc> | ||||
| <au:assertFileExists file="${output}/test/A.html"/> | <au:assertFileExists file="${output}/test/A.html"/> | ||||
| </target> | </target> | ||||
| <target name="-setUpDocFilesTests" depends="-makeTestClass"> | |||||
| <mkdir dir="${input}/test/doc-files/a"/> | |||||
| <mkdir dir="${input}/test/doc-files/b"/> | |||||
| <macrodef name="mkfoo"> | |||||
| <attribute name="file"/> | |||||
| <sequential> | |||||
| <echo file="@{file}"><![CDATA[<p>Hello, world!</p>]]></echo> | |||||
| </sequential> | |||||
| </macrodef> | |||||
| <mkfoo file="${input}/test/doc-files/foo.html"/> | |||||
| <mkfoo file="${input}/test/doc-files/a/foo.html"/> | |||||
| <mkfoo file="${input}/test/doc-files/b/foo.html"/> | |||||
| </target> | |||||
| <target name="XtestNoDocFiles" depends="-setUpDocFilesTests"> | |||||
| <javadoc destdir="${output}"> | |||||
| <packageset dir="${input}"/> | |||||
| </javadoc> | |||||
| <au:assertFileExists file="${output}/test/doc-files/foo.html"/> | |||||
| <au:assertFileDoesntExist file="${output}/test/doc-files/a/foo.html"/> | |||||
| </target> | |||||
| <target name="XtestDocFiles" depends="-setUpDocFilesTests"> | |||||
| <javadoc destdir="${output}" docfilessubdirs="true"> | |||||
| <packageset dir="${input}"/> | |||||
| </javadoc> | |||||
| <au:assertFileExists file="${output}/test/doc-files/foo.html"/> | |||||
| <au:assertFileExists file="${output}/test/doc-files/a/foo.html"/> | |||||
| <au:assertFileExists file="${output}/test/doc-files/b/foo.html"/> | |||||
| </target> | |||||
| <target name="XtestDocFilesWithExclude" depends="-setUpDocFilesTests"> | |||||
| <javadoc destdir="${output}" docfilessubdirs="true" | |||||
| excludedocfilessubdir="a"> | |||||
| <packageset dir="${input}"/> | |||||
| </javadoc> | |||||
| <au:assertFileExists file="${output}/test/doc-files/foo.html"/> | |||||
| <au:assertFileDoesntExist file="${output}/test/doc-files/a/foo.html"/> | |||||
| <au:assertFileExists file="${output}/test/doc-files/b/foo.html"/> | |||||
| </target> | |||||
| </project> | </project> | ||||