You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@apache.org on 2006/04/06 20:27:34 UTC
svn commit: r392027 - in /ant/core/trunk: docs/manual/CoreTasks/javadoc.html
src/etc/testcases/taskdefs/javadoc/javadoc.xml
src/main/org/apache/tools/ant/taskdefs/Javadoc.java
src/testcases/org/apache/tools/ant/taskdefs/JavadocTest.java
Author: bodewig
Date: Thu Apr 6 11:27:32 2006
New Revision: 392027
URL: http://svn.apache.org/viewcvs?rev=392027&view=rev
Log:
allow ressource collections for source files in <javadoc>
Modified:
ant/core/trunk/docs/manual/CoreTasks/javadoc.html
ant/core/trunk/src/etc/testcases/taskdefs/javadoc/javadoc.xml
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/JavadocTest.java
Modified: ant/core/trunk/docs/manual/CoreTasks/javadoc.html
URL: http://svn.apache.org/viewcvs/ant/core/trunk/docs/manual/CoreTasks/javadoc.html?rev=392027&r1=392026&r2=392027&view=diff
==============================================================================
--- ant/core/trunk/docs/manual/CoreTasks/javadoc.html (original)
+++ ant/core/trunk/docs/manual/CoreTasks/javadoc.html Thu Apr 6 11:27:32 2006
@@ -484,7 +484,7 @@
<p>A <a href="../CoreTypes/fileset.html">FileSet</a>. All matched
files will be passed to javadoc as source files. Ant will
automatically add the include pattern <code>**/*.java</code> (and
-<code>**/package.html</code> if inncludenosourcepackages is true) to
+<code>**/package.html</code> if includenosourcepackages is true) to
these filesets.</p>
<p>Nested filesets can be used to document sources that are in the
@@ -496,6 +496,14 @@
<p>The <code>packagenames</code>, <code>excludepackagenames</code> and
<code>defaultexcludes</code> attributes of the task have no effect on
the nested <code><fileset></code> elements.</p>
+
+<h4>sourcefiles</h4>
+
+<p>A container for arbitrary file system based <a
+href="../CoreTypes/resources.html#collection">resource
+collections</a>. All files contained in any of the nested collections
+(this includes nested filesets, filelists or paths) will be passed to
+javadoc as source files.</p>
<h4>package</h4>
<p>Same as one entry in the list given by <code>packagenames</code>.</p>
Modified: ant/core/trunk/src/etc/testcases/taskdefs/javadoc/javadoc.xml
URL: http://svn.apache.org/viewcvs/ant/core/trunk/src/etc/testcases/taskdefs/javadoc/javadoc.xml?rev=392027&r1=392026&r2=392027&view=diff
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/javadoc/javadoc.xml (original)
+++ ant/core/trunk/src/etc/testcases/taskdefs/javadoc/javadoc.xml Thu Apr 6 11:27:32 2006
@@ -56,6 +56,28 @@
</javadoc>
</target>
+ <target name="nestedFilesetNoPatterns">
+ <javadoc packagenames="*" destdir="javadoc">
+ <fileset dir="java/"/>
+ </javadoc>
+ </target>
+
+ <target name="doublyNestedFileset">
+ <javadoc packagenames="*" destdir="javadoc">
+ <sourcefiles>
+ <fileset dir="java/" includes="**/*.java"/>
+ </sourcefiles>
+ </javadoc>
+ </target>
+
+ <target name="doublyNestedFilesetNoPatterns">
+ <javadoc packagenames="*" destdir="javadoc">
+ <sourcefiles>
+ <fileset dir="java/"/>
+ </sourcefiles>
+ </javadoc>
+ </target>
+
<path id="path.filelist">
<pathelement location="."/>
<filelist dir="java/">
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
URL: http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java?rev=392027&r1=392026&r2=392027&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Javadoc.java Thu Apr 6 11:27:32 2006
@@ -25,7 +25,9 @@
import java.io.FileReader;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Enumeration;
+import java.util.Iterator;
import java.util.Locale;
import java.util.StringTokenizer;
import java.util.Vector;
@@ -41,6 +43,8 @@
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.PatternSet;
import org.apache.tools.ant.types.Reference;
+import org.apache.tools.ant.types.ResourceCollection;
+import org.apache.tools.ant.types.resources.FileResource;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.JavaEnvUtils;
@@ -344,6 +348,23 @@
}
}
+ /**
+ * Holds a collection of ResourceCollections.
+ *
+ * <p>A separate kind of container is needed since this task
+ * contains special handling for FileSets that has to occur at
+ * task runtime.</p>
+ */
+ public class ResourceCollectionContainer {
+ private ArrayList rcs = new ArrayList();
+ public void add(ResourceCollection rc) {
+ rcs.add(rc);
+ }
+ private Iterator iterator() {
+ return rcs.iterator();
+ }
+ }
+
private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();
/** The command line built to execute Javadoc. */
@@ -412,7 +433,8 @@
private boolean old = false;
private String executable = null;
- private Vector fileSets = new Vector();
+ private ResourceCollectionContainer nestedSourceFiles
+ = new ResourceCollectionContainer();
private Vector packageSets = new Vector();
/**
@@ -1514,7 +1536,17 @@
* @since 1.5
*/
public void addFileset(FileSet fs) {
- fileSets.addElement(fs);
+ createSourceFiles().add(fs);
+ }
+
+ /**
+ * Adds a container for resource collections.
+ *
+ * <p>All included files will be added as sourcefiles.</p>
+ * @since 1.7
+ */
+ public ResourceCollectionContainer createSourceFiles() {
+ return nestedSourceFiles;
}
/**
@@ -1594,7 +1626,7 @@
}
Vector sourceFilesToDoc = (Vector) sourceFiles.clone();
- addFileSets(sourceFilesToDoc);
+ addSourceFiles(sourceFilesToDoc);
if (packageList == null && packagesToDoc.size() == 0
&& sourceFilesToDoc.size() == 0) {
@@ -2036,15 +2068,21 @@
}
/**
- * Add the files matched by the nested filesets to the Vector as
- * SourceFile instances.
+ * Add the files matched by the nested source files to the Vector
+ * as SourceFile instances.
*
- * @since 1.5
+ * @since 1.7
*/
- private void addFileSets(Vector sf) {
- Enumeration e = fileSets.elements();
- while (e.hasMoreElements()) {
- FileSet fs = (FileSet) e.nextElement();
+ private void addSourceFiles(Vector sf) {
+ Iterator e = nestedSourceFiles.iterator();
+ while (e.hasNext()) {
+ ResourceCollection rc = (ResourceCollection) e.next();
+ if (!rc.isFilesystemOnly()) {
+ throw new BuildException("only file system based resources are"
+ + " supported by javadoc");
+ }
+ if (rc instanceof FileSet) {
+ FileSet fs = (FileSet) rc;
if (!fs.hasPatterns() && !fs.hasSelectors()) {
fs = (FileSet) fs.clone();
fs.createInclude().setName("**/*.java");
@@ -2052,11 +2090,11 @@
fs.createInclude().setName("**/package.html");
}
}
- File baseDir = fs.getDir(getProject());
- DirectoryScanner ds = fs.getDirectoryScanner(getProject());
- String[] files = ds.getIncludedFiles();
- for (int i = 0; i < files.length; i++) {
- sf.addElement(new SourceFile(new File(baseDir, files[i])));
+ }
+ Iterator iter = rc.iterator();
+ while (iter.hasNext()) {
+ sf.addElement(new SourceFile(((FileResource) iter.next())
+ .getFile()));
}
}
}
Modified: ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/JavadocTest.java
URL: http://svn.apache.org/viewcvs/ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/JavadocTest.java?rev=392027&r1=392026&r2=392027&view=diff
==============================================================================
--- ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/JavadocTest.java (original)
+++ ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/JavadocTest.java Thu Apr 6 11:27:32 2006
@@ -118,4 +118,16 @@
public void testNestedFilesetRefInPath() throws Exception {
executeTarget("nestedFilesetRefInPath");
}
+
+ public void testNestedFilesetNoPatterns() throws Exception {
+ executeTarget("nestedFilesetNoPatterns");
+ }
+
+ public void testDoublyNestedFileset() throws Exception {
+ executeTarget("doublyNestedFileset");
+ }
+
+ public void testDoublyNestedFilesetNoPatterns() throws Exception {
+ executeTarget("doublyNestedFilesetNoPatterns");
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org