Submitted by: Patrick Chanezon <chanezon@netscape.com> git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267712 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -13,6 +13,7 @@ | |||||
| <ul> | <ul> | ||||
| <li>Jacques Bergeron (<a href="mailto:jacques.bergeron@dogico.com">jacques.bergeron@dogico.com</a>)</li> | <li>Jacques Bergeron (<a href="mailto:jacques.bergeron@dogico.com">jacques.bergeron@dogico.com</a>)</li> | ||||
| <li>Stefan Bodewig (<a href="mailto:stefan.bodewig@megabit.net">stefan.bodewig@megabit.net</a>)</li> | <li>Stefan Bodewig (<a href="mailto:stefan.bodewig@megabit.net">stefan.bodewig@megabit.net</a>)</li> | ||||
| <li>Patrick Chanezon (<a href="mailto:chanezon@netscape.com">chanezon@netscape.com</a>)</li> | |||||
| <li>James Duncan Davison (<a href="mailto:duncan@x180.com">duncan@x180.com</a>)</li> | <li>James Duncan Davison (<a href="mailto:duncan@x180.com">duncan@x180.com</a>)</li> | ||||
| <li>Tom Dimock (<a href="mailto:tad1@cornell.edu">tad1@cornell.edu</a>)</li> | <li>Tom Dimock (<a href="mailto:tad1@cornell.edu">tad1@cornell.edu</a>)</li> | ||||
| <li>Bill Kelly (<a href="mailto:bill.kelly@softwired-inc.com">bill.kelly@softwired-inc.com</a>)</li> | <li>Bill Kelly (<a href="mailto:bill.kelly@softwired-inc.com">bill.kelly@softwired-inc.com</a>)</li> | ||||
| @@ -1660,23 +1661,34 @@ The classpath used contains <code>xyz.jar</code>, and debug information is on. | |||||
| Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are | Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are | ||||
| used. Files in the <code>mypackage/p1/testpackage</code> directory are excluded | used. Files in the <code>mypackage/p1/testpackage</code> directory are excluded | ||||
| form compilation and copy.</p> | form compilation and copy.</p> | ||||
| <hr> | <hr> | ||||
| <h2><a name="javadoc">Javadoc/Javadoc2</a></h2> | <h2><a name="javadoc">Javadoc/Javadoc2</a></h2> | ||||
| <h3>Description</h3> | <h3>Description</h3> | ||||
| <p>Generates code documentation using the javadoc tool.</p> | <p>Generates code documentation using the javadoc tool.</p> | ||||
| <p>The source directory will be recursively scanned for Java source files to but | |||||
| only those matching the inclusion rules will be passed to the javadoc tool. This | |||||
| <p>The source directory will be recursively scanned for Java source files to process | |||||
| but only those matching the inclusion rules will be passed to the javadoc tool. This | |||||
| allows wildcards to be used to choose between package names, reducing verbosity | allows wildcards to be used to choose between package names, reducing verbosity | ||||
| and management costs over time. This task, however, has no notion of | and management costs over time. This task, however, has no notion of | ||||
| "changed" files, unlike the <a href="#javac">javac</a> task, but it's | |||||
| not used so frequently.</p> | |||||
| "changed" files, unlike the <a href="#javac">javac</a> task. This means | |||||
| all packages will be processed each time this task is run. In general, however, | |||||
| this task is used much less frequently.</p> | |||||
| <p>This task works seamlessly between different javadoc versions (1.1 and 1.2), | <p>This task works seamlessly between different javadoc versions (1.1 and 1.2), | ||||
| with the obvious restriction that the 1.2 attributes will be ignored if run in a | with the obvious restriction that the 1.2 attributes will be ignored if run in a | ||||
| 1.1 VM.</p> | 1.1 VM.</p> | ||||
| <p>NOTE: since javadoc calls System.exit(), we cannot run javadoc inside the | |||||
| same VM without breaking functionality. For this reason, this task always forks | |||||
| the VM. But this is not a performance penalty since javadoc is normally a heavy | |||||
| application and must be called just once.</p> | |||||
| <p>NOTE: since javadoc calls System.exit(), javadoc cannot be run inside the | |||||
| same VM as ant without breaking functionality. For this reason, this task | |||||
| always forks the VM. This overhead is not significant since javadoc is normally a heavy | |||||
| application and will be called infrequently.</p> | |||||
| <p>NOTE: the packagelist attribute allows you to specify the list of packages to | |||||
| document outside of the Ant file. It's a much better practice to include everything | |||||
| inside the build.xml file. This option was added in order to make it easier to | |||||
| migrate from regular makefiles, where you would use this option of javadoc. | |||||
| The packages listed in packagelist are not checked, so the task performs even | |||||
| if some packages are missing or broken. Use this option if you wish to convert from | |||||
| an existing makefile. Once things are running you should then switch to the regular | |||||
| notation. | |||||
| <p>DEPRECATION: the javadoc2 task simply points to the javadoc task and it's | <p>DEPRECATION: the javadoc2 task simply points to the javadoc task and it's | ||||
| there for back compatibility reasons. Since this task will be removed in future | there for back compatibility reasons. Since this task will be removed in future | ||||
| versions, you are strongly encouraged to use <a href="#javadoc">javadoc</a> | versions, you are strongly encouraged to use <a href="#javadoc">javadoc</a> | ||||
| @@ -1701,6 +1713,12 @@ instead.</p> | |||||
| <td align="center" valign="top">all</td> | <td align="center" valign="top">all</td> | ||||
| <td align="center" valign="top">Yes</td> | <td align="center" valign="top">Yes</td> | ||||
| </tr> | </tr> | ||||
| <tr> | |||||
| <td valign="top">maxmemory</td> | |||||
| <td valign="top">Max amount of memory to allocate to the javadoc VM</td> | |||||
| <td align="center" valign="top">all</td> | |||||
| <td align="center" valign="top">No</td> | |||||
| </tr> | |||||
| <tr> | <tr> | ||||
| <td valign="top">sourcefiles</td> | <td valign="top">sourcefiles</td> | ||||
| <td valign="top">Space separated list of source files</td> | <td valign="top">Space separated list of source files</td> | ||||
| @@ -1714,7 +1732,13 @@ instead.</p> | |||||
| <td align="center" valign="top">all</td> | <td align="center" valign="top">all</td> | ||||
| </tr> | </tr> | ||||
| <tr> | <tr> | ||||
| <td valign="top">Classpath</td> | |||||
| <td valign="top">packageList</td> | |||||
| <td valign="top">The name of a file containing the packages to process</td> | |||||
| <td align="center" valign="top">all</td> | |||||
| <td align="center" valign="top">No</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">classpath</td> | |||||
| <td valign="top">Specify where to find user class files</td> | <td valign="top">Specify where to find user class files</td> | ||||
| <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> | ||||
| @@ -1929,14 +1953,81 @@ instead.</p> | |||||
| <tr> | <tr> | ||||
| <td valign="top">doclet</td> | <td valign="top">doclet</td> | ||||
| <td valign="top">Specifies the class file that starts the doclet used in generating the documentation.</td> | <td valign="top">Specifies the class file that starts the doclet used in generating the documentation.</td> | ||||
| <td align="center" valign="top">1.2</td> | |||||
| <td align="center" valign="top">No</td> | <td align="center" valign="top">No</td> | ||||
| </tr> | </tr> | ||||
| <tr> | <tr> | ||||
| <td valign="top">docletpath</td> | <td valign="top">docletpath</td> | ||||
| <td valign="top">Specifies the path to the doclet class file that is specified with the -doclet option.</td> | <td valign="top">Specifies the path to the doclet class file that is specified with the -doclet option.</td> | ||||
| <td align="center" valign="top">1.2</td> | |||||
| <td align="center" valign="top">No</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">additionalparam</td> | |||||
| <td valign="top">Lets you add additional parameters to the javadoc command line. Useful for doclets</td> | |||||
| <td align="center" valign="top">1.2</td> | |||||
| <td align="center" valign="top">No</td> | |||||
| </tr> | |||||
| </table> | |||||
| <h3>Parameters specified as subelements</h3> | |||||
| Two parameters of the Javadoc task may be specified as nested elements of the | |||||
| Javadoc task element: link and group. | |||||
| When present, there can be any number of each of these elements. | |||||
| They perform the same role as the link, linkoffline and | |||||
| group attributes. You can use either syntax (or both at once), but with the nested | |||||
| elements you can easily specify multiple occurrences of the arguments. | |||||
| <h4>link</h4> | |||||
| Create link to javadoc output at the given URL | |||||
| <h4>Parameters</h4> | |||||
| <table width="60%" border="1" cellpadding="2" cellspacing="0"> | |||||
| <tr> | |||||
| <td valign="top"><b>Attribute</b></td> | |||||
| <td valign="top"><b>Description</b></td> | |||||
| <td align="center" valign="top"><b>Required</b></td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">href</td> | |||||
| <td valign="top">The URL for the external documentation you wish to link to</td> | |||||
| <td align="center" valign="top">Yes</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">offline</td> | |||||
| <td valign="top">True if this link is not available online at the time of | |||||
| generating the documentation</td> | |||||
| <td align="center" valign="top">No</td> | <td align="center" valign="top">No</td> | ||||
| </tr> | </tr> | ||||
| <tr> | |||||
| <td valign="top">packagelistLoc</td> | |||||
| <td valign="top">The location to the directory containing the package-list file for | |||||
| the external documentation</td> | |||||
| <td align="center" valign="top">Only if the offline attribute is true</td> | |||||
| </tr> | |||||
| </table> | |||||
| <h4>groups</h4> | |||||
| Separates packages on the overview page into whatever groups you specify, | |||||
| one group per table. | |||||
| <table width="60%" border="1" cellpadding="2" cellspacing="0"> | |||||
| <tr> | |||||
| <td valign="top"><b>Attribute</b></td> | |||||
| <td valign="top"><b>Description</b></td> | |||||
| <td align="center" valign="top"><b>Required</b></td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">title</td> | |||||
| <td valign="top">Title of the group</td> | |||||
| <td align="center" valign="top">Yes</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">packages</td> | |||||
| <td valign="top">List of packages to include in that group</td> | |||||
| <td align="center" valign="top">Yes</td> | |||||
| </tr> | |||||
| </table> | </table> | ||||
| <h3>Example</h3> | <h3>Example</h3> | ||||
| <pre> <javadoc packagenames="com.dummy.test.*" | <pre> <javadoc packagenames="com.dummy.test.*" | ||||
| sourcepath="src" | sourcepath="src" | ||||
| @@ -1946,8 +2037,13 @@ instead.</p> | |||||
| use="true" | use="true" | ||||
| windowtitle="Test API" | windowtitle="Test API" | ||||
| doctitle="<h1>Test</h1>" | doctitle="<h1>Test</h1>" | ||||
| bottom="<i>Copyright &#169; 2000 Dummy Corp. All Rights Reserved.</i>" | |||||
| /></pre> | |||||
| bottom="<i>Copyright &#169; 2000 Dummy Corp. All Rights Reserved.</i>"> | |||||
| <group title="Group 1 Packages" packages="com.dummy.test.a*"/> | |||||
| <group title="Group 2 Packages" packages="com.dummy.test.b*"/> | |||||
| <link offline="true" href="http://java.sun.com/products/jdk/1.2/docs/api/" packagelistLoc="C:\tmp"/> | |||||
| <link href="http://developer.java.sun.com/developer/products/xml/docs/api/"/> | |||||
| </javadoc></pre> | |||||
| <hr> | <hr> | ||||
| <h2><a name="keysubst">KeySubst</a></h2> | <h2><a name="keysubst">KeySubst</a></h2> | ||||
| <h3>Description</h3> | <h3>Description</h3> | ||||
| @@ -74,7 +74,7 @@ public interface BuildListener extends EventListener { | |||||
| * Fired after the last target has finished. This event | * Fired after the last target has finished. This event | ||||
| * will still be thrown if an error occured during the build. | * will still be thrown if an error occured during the build. | ||||
| * | * | ||||
| * @see BuildEvent.getException() | |||||
| * @see BuildEvent#getException() | |||||
| */ | */ | ||||
| public void buildFinished(BuildEvent event); | public void buildFinished(BuildEvent event); | ||||
| @@ -89,7 +89,7 @@ public interface BuildListener extends EventListener { | |||||
| * Fired when a target has finished. This event will | * Fired when a target has finished. This event will | ||||
| * still be thrown if an error occured during the build. | * still be thrown if an error occured during the build. | ||||
| * | * | ||||
| * @see BuildEvent.getException() | |||||
| * @see BuildEvent#getException() | |||||
| */ | */ | ||||
| public void targetFinished(BuildEvent event); | public void targetFinished(BuildEvent event); | ||||
| @@ -808,7 +808,6 @@ strLoop: | |||||
| /** | /** | ||||
| * Adds the array with default exclusions to the current exclusions set. | * Adds the array with default exclusions to the current exclusions set. | ||||
| * | * | ||||
| * @see #DEFAULTEXCLUDES | |||||
| */ | */ | ||||
| public void addDefaultExcludes() { | public void addDefaultExcludes() { | ||||
| int excludesLength = excludes == null ? 0 : excludes.length; | int excludesLength = excludes == null ? 0 : excludes.length; | ||||
| @@ -0,0 +1,124 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 1999 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant; | |||||
| import java.util.*; | |||||
| import java.io.*; | |||||
| /** | |||||
| * A Path tokenizer takes a path and returns the components that make up | |||||
| * that path. | |||||
| * | |||||
| * The path can use path separators of either ':' or ';' and file separators | |||||
| * of either '/' or '\' | |||||
| * | |||||
| * @author Conor MacNeill (conor@ieee.org) | |||||
| * | |||||
| */ | |||||
| public class PathTokenizer { | |||||
| /** | |||||
| * A tokenizer to break the string up based on the ':' or ';' separators. | |||||
| */ | |||||
| StringTokenizer tokenizer; | |||||
| /** | |||||
| * A String which stores any path components which have been read ahead. | |||||
| */ | |||||
| String lookahead = null; | |||||
| public PathTokenizer(String path) { | |||||
| tokenizer = new StringTokenizer(path, ":;", false); | |||||
| } | |||||
| public boolean hasMoreTokens() { | |||||
| if (lookahead != null) { | |||||
| return true; | |||||
| } | |||||
| return tokenizer.hasMoreTokens(); | |||||
| } | |||||
| public String nextToken() throws NoSuchElementException { | |||||
| if (lookahead != null) { | |||||
| String token = lookahead; | |||||
| lookahead = null; | |||||
| return token; | |||||
| } | |||||
| else { | |||||
| String token = tokenizer.nextToken().trim(); | |||||
| if (token.length() == 1 && Character.isLetter(token.charAt(0)) | |||||
| && File.pathSeparator.equals(";") | |||||
| && tokenizer.hasMoreTokens()) { | |||||
| // we are on a dos style system so this path could be a drive | |||||
| // spec. We look at the next token | |||||
| String nextToken = tokenizer.nextToken().trim(); | |||||
| if (nextToken.startsWith("\\") || nextToken.startsWith("/")) { | |||||
| // we know we are on a DOS style platform and the next path starts with a | |||||
| // slash or backslash, so we know this is a drive spec | |||||
| token += ":" + nextToken; | |||||
| } | |||||
| else { | |||||
| // store the token just read for next time | |||||
| lookahead = nextToken; | |||||
| } | |||||
| } | |||||
| return token; | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -62,7 +62,7 @@ import org.w3c.dom.*; | |||||
| * Generates a "log.xml" file in the current directory with | * Generates a "log.xml" file in the current directory with | ||||
| * an XML description of what happened during a build. | * an XML description of what happened during a build. | ||||
| * | * | ||||
| * @see Project#addBuildListener() | |||||
| * @see Project#addBuildListener(BuildListener) | |||||
| */ | */ | ||||
| public class XmlLogger implements BuildListener { | public class XmlLogger implements BuildListener { | ||||
| @@ -75,11 +75,14 @@ import java.util.*; | |||||
| * | * | ||||
| * @author Jon S. Stevens <a href="mailto:jon@clearink.com">jon@clearink.com</a> | * @author Jon S. Stevens <a href="mailto:jon@clearink.com">jon@clearink.com</a> | ||||
| * @author Stefano Mazzocchi <a href="mailto:stefano@apache.org">stefano@apache.org</a> | * @author Stefano Mazzocchi <a href="mailto:stefano@apache.org">stefano@apache.org</a> | ||||
| * @author Patrick Chanezon <a href="mailto:chanezon@netscape.com">chanezon@netscape.com</a> | |||||
| */ | */ | ||||
| public class Javadoc extends Exec { | public class Javadoc extends Exec { | ||||
| private String maxmemory = null; | |||||
| private String sourcePath = null; | private String sourcePath = null; | ||||
| private String additionalParam = null; | |||||
| private File destDir = null; | private File destDir = null; | ||||
| private File overviewFile = null; | private File overviewFile = null; | ||||
| private String sourceFiles = null; | private String sourceFiles = null; | ||||
| @@ -106,8 +109,8 @@ public class Javadoc extends Exec { | |||||
| private String header = null; | private String header = null; | ||||
| private String footer = null; | private String footer = null; | ||||
| private String bottom = null; | private String bottom = null; | ||||
| private String link = null; | |||||
| private String linkoffline = null; | private String linkoffline = null; | ||||
| private String link = null; | |||||
| private String group = null; | private String group = null; | ||||
| private boolean nodeprecated = false; | private boolean nodeprecated = false; | ||||
| private boolean nodeprecatedlist = false; | private boolean nodeprecatedlist = false; | ||||
| @@ -119,7 +122,18 @@ public class Javadoc extends Exec { | |||||
| private File helpfile = null; | private File helpfile = null; | ||||
| private String docencoding = null; | private String docencoding = null; | ||||
| private Vector compileList = new Vector(10); | private Vector compileList = new Vector(10); | ||||
| private String packageList = null; | |||||
| private Vector links = new Vector(2); | |||||
| private Vector groups = new Vector(2); | |||||
| public void setMaxmemory(String src){ | |||||
| maxmemory = src; | |||||
| } | |||||
| public void setadditionalParam(String src){ | |||||
| additionalParam = src; | |||||
| } | |||||
| public void setSourcepath(String src) { | public void setSourcepath(String src) { | ||||
| sourcePath = project.translatePath(src); | sourcePath = project.translatePath(src); | ||||
| } | } | ||||
| @@ -201,15 +215,15 @@ public class Javadoc extends Exec { | |||||
| public void setBottom(String src) { | public void setBottom(String src) { | ||||
| bottom = src; | bottom = src; | ||||
| } | } | ||||
| public void setLink(String src) { | |||||
| link = src; | |||||
| } | |||||
| public void setLinkoffline(String src) { | public void setLinkoffline(String src) { | ||||
| linkoffline = src; | linkoffline = src; | ||||
| } | } | ||||
| public void setGroup(String src) { | public void setGroup(String src) { | ||||
| group = src; | group = src; | ||||
| } | } | ||||
| public void setLink(String src) { | |||||
| link = src; | |||||
| } | |||||
| public void setNodeprecated(String src) { | public void setNodeprecated(String src) { | ||||
| nodeprecated = Project.toBoolean(src); | nodeprecated = Project.toBoolean(src); | ||||
| } | } | ||||
| @@ -234,6 +248,78 @@ public class Javadoc extends Exec { | |||||
| public void setDocencoding(String src) { | public void setDocencoding(String src) { | ||||
| docencoding = src; | docencoding = src; | ||||
| } | } | ||||
| public void setPackageList(String src) { | |||||
| packageList = src; | |||||
| } | |||||
| public LinkArgument createLink() { | |||||
| LinkArgument la = new LinkArgument(); | |||||
| links.addElement(la); | |||||
| return la; | |||||
| } | |||||
| public class LinkArgument { | |||||
| private String href; | |||||
| private boolean offline = false; | |||||
| private String packagelistLoc; | |||||
| public LinkArgument() { | |||||
| } | |||||
| public void setHref(String hr) { | |||||
| href = hr; | |||||
| } | |||||
| public String getHref() { | |||||
| return href; | |||||
| } | |||||
| public void setPackagelistLoc(String src) { | |||||
| packagelistLoc = src; | |||||
| } | |||||
| public String getPackagelistLoc() { | |||||
| return packagelistLoc; | |||||
| } | |||||
| public void setOffline(String offline) { | |||||
| this.offline = Project.toBoolean(offline); | |||||
| } | |||||
| public boolean isLinkOffline() { | |||||
| return offline; | |||||
| } | |||||
| } | |||||
| public GroupArgument createGroup() { | |||||
| GroupArgument ga = new GroupArgument(); | |||||
| groups.addElement(ga); | |||||
| return ga; | |||||
| } | |||||
| public class GroupArgument { | |||||
| private String title; | |||||
| private String packages; | |||||
| public GroupArgument() { | |||||
| } | |||||
| public void setTitle(String src) { | |||||
| title = src; | |||||
| } | |||||
| public String getTitle() { | |||||
| return title; | |||||
| } | |||||
| public void setPackages(String src) { | |||||
| packages = src; | |||||
| } | |||||
| public String getPackages() { | |||||
| return packages; | |||||
| } | |||||
| } | |||||
| public void execute() throws BuildException { | public void execute() throws BuildException { | ||||
| if (sourcePath == null && destDir == null ) { | if (sourcePath == null && destDir == null ) { | ||||
| @@ -251,6 +337,16 @@ public class Javadoc extends Exec { | |||||
| if (classpath == null) | if (classpath == null) | ||||
| classpath = System.getProperty("java.class.path"); | classpath = System.getProperty("java.class.path"); | ||||
| if(maxmemory != null){ | |||||
| if(javadoc1){ | |||||
| argList.addElement("-J-mx" + maxmemory); | |||||
| } | |||||
| else{ | |||||
| argList.addElement("-J-Xmx" + maxmemory); | |||||
| } | |||||
| } | |||||
| if ( (!javadoc1) || (sourcePath == null) ) { | if ( (!javadoc1) || (sourcePath == null) ) { | ||||
| argList.addElement("-classpath"); | argList.addElement("-classpath"); | ||||
| argList.addElement(classpath); | argList.addElement(classpath); | ||||
| @@ -358,15 +454,46 @@ public class Javadoc extends Exec { | |||||
| argList.addElement("-bottom"); | argList.addElement("-bottom"); | ||||
| argList.addElement(bottom); | argList.addElement(bottom); | ||||
| } | } | ||||
| // add the single link arguments | |||||
| if (link != null) { | if (link != null) { | ||||
| argList.addElement("-link"); | argList.addElement("-link"); | ||||
| argList.addElement(link); | argList.addElement(link); | ||||
| } | } | ||||
| // add the links arguments | |||||
| if (links.size() != 0) { | |||||
| for (Enumeration e = links.elements(); e.hasMoreElements(); ) { | |||||
| LinkArgument la = (LinkArgument)e.nextElement(); | |||||
| if (la.getHref() == null) { | |||||
| throw new BuildException("Links must provide the RUL to the external class documentation."); | |||||
| } | |||||
| if (la.isLinkOffline()) { | |||||
| String packageListLocation = la.getPackagelistLoc(); | |||||
| if (packageListLocation == null) { | |||||
| throw new BuildException("The package list location for link " + la.getHref() + | |||||
| " must be provided because the link is offline"); | |||||
| } | |||||
| argList.addElement("-linkoffline"); | |||||
| argList.addElement(la.getHref()); | |||||
| argList.addElement(packageListLocation); | |||||
| } | |||||
| else { | |||||
| argList.addElement("-link"); | |||||
| argList.addElement(la.getHref()); | |||||
| } | |||||
| } | |||||
| } | |||||
| // add the single linkoffline arguments | |||||
| if (linkoffline != null) { | if (linkoffline != null) { | ||||
| argList.addElement("-linkoffline"); | argList.addElement("-linkoffline"); | ||||
| argList.addElement(linkoffline); | argList.addElement(linkoffline); | ||||
| } | } | ||||
| // add the single group arguments | |||||
| // Javadoc 1.2 rules: | // Javadoc 1.2 rules: | ||||
| // Multiple -group args allowed. | // Multiple -group args allowed. | ||||
| // Each arg includes 3 strings: -group [name] [packagelist]. | // Each arg includes 3 strings: -group [name] [packagelist]. | ||||
| @@ -391,6 +518,27 @@ public class Javadoc extends Exec { | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| // add the group arguments | |||||
| if (groups.size() != 0) { | |||||
| String title = null; | |||||
| String packages = null; | |||||
| GroupArgument ga = null; | |||||
| for (int i = 0; i < groups.size(); i++) { | |||||
| ga = (GroupArgument)groups.get(i); | |||||
| if (ga != null) { | |||||
| title = ga.getTitle(); | |||||
| packages = ga.getPackages(); | |||||
| } | |||||
| if (title != null) { | |||||
| argList.addElement("-group"); | |||||
| argList.addElement(title); | |||||
| if (packages != null) { | |||||
| argList.addElement(packages); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| if (stylesheetfile != null) { | if (stylesheetfile != null) { | ||||
| argList.addElement("-stylesheetfile"); | argList.addElement("-stylesheetfile"); | ||||
| @@ -400,6 +548,9 @@ public class Javadoc extends Exec { | |||||
| argList.addElement("-helpfile"); | argList.addElement("-helpfile"); | ||||
| argList.addElement(helpfile.getAbsolutePath()); | argList.addElement(helpfile.getAbsolutePath()); | ||||
| } | } | ||||
| if (additionalParam != null) { | |||||
| argList.addElement(additionalParam); | |||||
| } | |||||
| } | } | ||||
| if ((packageNames != null) && (packageNames.length() > 0)) { | if ((packageNames != null) && (packageNames.length() > 0)) { | ||||
| @@ -425,6 +576,9 @@ public class Javadoc extends Exec { | |||||
| } | } | ||||
| } | } | ||||
| if (packageList != null) { | |||||
| argList.addElement("@" + packageList); | |||||
| } | |||||
| project.log("Javadoc args: " + argList.toString(), "javadoc", project.MSG_VERBOSE); | project.log("Javadoc args: " + argList.toString(), "javadoc", project.MSG_VERBOSE); | ||||
| project.log("Javadoc execution", project.MSG_INFO); | project.log("Javadoc execution", project.MSG_INFO); | ||||
| @@ -453,20 +607,29 @@ public class Javadoc extends Exec { | |||||
| * with the packages found in that path subdirs matching one of the given | * with the packages found in that path subdirs matching one of the given | ||||
| * patterns. | * patterns. | ||||
| */ | */ | ||||
| private void evaluatePackages(String source, Vector packages, Vector argList) { | |||||
| private void evaluatePackages(String sourcePath, Vector packages, Vector argList) { | |||||
| project.log("Parsing source files for packages", project.MSG_INFO); | project.log("Parsing source files for packages", project.MSG_INFO); | ||||
| project.log("Source dir = " + source, project.MSG_VERBOSE); | |||||
| project.log("Source path = " + sourcePath, project.MSG_VERBOSE); | |||||
| project.log("Packages = " + packages, project.MSG_VERBOSE); | project.log("Packages = " + packages, project.MSG_VERBOSE); | ||||
| Hashtable map = mapClasses(new File(source)); | |||||
| Enumeration e = map.keys(); | |||||
| while (e.hasMoreElements()) { | |||||
| String pack = (String) e.nextElement(); | |||||
| for (int i = 0; i < packages.size(); i++) { | |||||
| if (matches(pack, (String) packages.elementAt(i))) { | |||||
| argList.addElement(pack); | |||||
| break; | |||||
| Vector addedPackages = new Vector(); | |||||
| PathTokenizer tokenizer = new PathTokenizer(sourcePath); | |||||
| while (tokenizer.hasMoreTokens()) { | |||||
| File source = new File(project.translatePath(tokenizer.nextToken())); | |||||
| Hashtable map = mapClasses(source); | |||||
| Enumeration e = map.keys(); | |||||
| while (e.hasMoreElements()) { | |||||
| String pack = (String) e.nextElement(); | |||||
| for (int i = 0; i < packages.size(); i++) { | |||||
| if (matches(pack, (String) packages.elementAt(i))) { | |||||
| if (!addedPackages.contains(pack)) { | |||||
| argList.addElement(pack); | |||||
| addedPackages.addElement(pack); | |||||
| } | |||||
| break; | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -73,7 +73,6 @@ import org.apache.tools.ant.taskdefs.*; | |||||
| /** | /** | ||||
| * | * | ||||
| * @author dion | * @author dion | ||||
| * @version | |||||
| */ | */ | ||||
| public class RenameExtensions extends MatchingTask { | public class RenameExtensions extends MatchingTask { | ||||