Browse Source

Add attributes for javadoc's -docfilessubdirs and -excludedocfilessubdir CLI args. PR 34455

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@720156 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
f1a903928b
4 changed files with 98 additions and 1 deletions
  1. +4
    -0
      WHATSNEW
  2. +15
    -0
      docs/manual/CoreTasks/javadoc.html
  3. +33
    -0
      src/main/org/apache/tools/ant/taskdefs/Javadoc.java
  4. +46
    -1
      src/tests/antunit/taskdefs/javadoc-test.xml

+ 4
- 0
WHATSNEW View File

@@ -544,6 +544,10 @@ Other changes:
break the build if the archive doesn't exist.
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
=============================================



+ 15
- 0
docs/manual/CoreTasks/javadoc.html View File

@@ -487,6 +487,21 @@ to &lt;javadoc&gt; using <tt>classpath</tt>, <tt>classpathref</tt> attributes or
<td align="center" valign="top">all</td>
<td align="center" valign="top">No</td>
</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>

<h4><a name="groupattribute">Format of the group attribute</a></h4>


+ 33
- 0
src/main/org/apache/tools/ant/taskdefs/Javadoc.java View File

@@ -449,6 +449,8 @@ public class Javadoc extends Task {
private String noqualifier;
private boolean includeNoSourcePackages = false;
private String executable = null;
private boolean docFilesSubDirs = false;
private String excludeDocFilesSubDir = null;

private ResourceCollectionContainer nestedSourceFiles
= new ResourceCollectionContainer();
@@ -1632,6 +1634,25 @@ public class Javadoc extends Task {
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.
* @throws BuildException on error
@@ -1673,6 +1694,7 @@ public class Javadoc extends Task {
doLinks(toExecute); // links arguments
doGroup(toExecute); // group attribute
doGroups(toExecute); // groups attribute
doDocFilesSubDirs(toExecute); // docfilessubdir attribute

doJava14(toExecute);
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(
Commandline toExecute,
Vector packagesToDoc,


+ 46
- 1
src/tests/antunit/taskdefs/javadoc-test.xml View File

@@ -18,7 +18,7 @@
<project default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
<import file="../antunit-base.xml" />

<target name="testBottomWithLineBreaksWithFile">
<target name="-makeTestClass">
<mkdir dir="${input}/test"/>
<echo file="${input}/test/A.java"><![CDATA[
package test;
@@ -33,6 +33,9 @@ public class A {
public void foo(String bar) {}
}
]]></echo>
</target>

<target name="testBottomWithLineBreaksWithFile" depends="-makeTestClass">
<javadoc destdir="${output}" useexternalfile="true">
<fileset dir="${input}"/>
<bottom><![CDATA[
@@ -42,4 +45,46 @@ Hello World
</javadoc>
<au:assertFileExists file="${output}/test/A.html"/>
</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>

Loading…
Cancel
Save