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> |