bodewig 2005/03/17 01:06:22 Modified: docs/manual/CoreTasks javadoc.html src/main/org/apache/tools/ant/taskdefs Javadoc.java Log: Optionally resolve the link attribute. PR: 24364 Revision Changes Path 1.31 +12 -1 ant/docs/manual/CoreTasks/javadoc.html Index: javadoc.html =================================================================== RCS file: /home/cvs/ant/docs/manual/CoreTasks/javadoc.html,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- javadoc.html 7 Mar 2005 18:09:09 -0000 1.30 +++ javadoc.html 17 Mar 2005 09:06:22 -0000 1.31 @@ -550,7 +550,9 @@ </tr> <tr> <td valign="top">href</td> - <td valign="top">The URL for the external documentation you wish to link to</td> + <td valign="top">The URL for the external documentation you wish + to link to. This can be an absolute URL, or a relative file + name.</td> <td align="center" valign="top">Yes</td> </tr> <tr> @@ -565,6 +567,15 @@ the external documentation</td> <td align="center" valign="top">Only if the offline attribute is true</td> </tr> + <tr> + <td valign="top">resolveLink</td> + <td valign="top">If the link attribute is a relative file name, + Ant will first try to locate the file relative to the current + project's basedir and if it finds a file there use an absolute URL + for the link attribute, otherwise it will pass the file name + verbatim to the javadoc command.</td> + <td align="center" valign="top">No, default is false.</td> + </tr> </table> <h4><a name="groupelement">group</a></h4> 1.136 +39 -3 ant/src/main/org/apache/tools/ant/taskdefs/Javadoc.java Index: Javadoc.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Javadoc.java,v retrieving revision 1.135 retrieving revision 1.136 diff -u -r1.135 -r1.136 --- Javadoc.java 14 Mar 2005 10:03:36 -0000 1.135 +++ Javadoc.java 17 Mar 2005 09:06:22 -0000 1.136 @@ -1200,6 +1200,7 @@ private String href; private boolean offline = false; private File packagelistLoc; + private boolean resolveLink = false; /** Constructor for LinkArguement */ public LinkArgument() { @@ -1253,6 +1254,24 @@ public boolean isLinkOffline() { return offline; } + + /** + * Sets whether Ant should resolve the link attribute relative + * to the current basedir. + * @param resolve a <code>boolean</code> value + */ + public void setResolveLink(boolean resolve) { + this.resolveLink = resolve; + } + + /** + * should Ant resolve the link attribute relative to the + * current basedir? + */ + public boolean shouldResolveLink() { + return resolveLink; + } + } /** @@ -1756,11 +1775,28 @@ log("No href was given for the link - skipping", Project.MSG_VERBOSE); continue; - } else { + } + String link = null; + if (la.shouldResolveLink()) { + File hrefAsFile = + getProject().resolveFile(la.getHref()); + if (hrefAsFile.exists()) { + try { + link = FILE_UTILS.getFileURL(hrefAsFile) + .toExternalForm(); + } catch (MalformedURLException ex) { + // should be impossible + log("Warning: link location was invalid " + + hrefAsFile, Project.MSG_WARN); + } + } + } + if (link == null) { // is the href a valid URL try { URL base = new URL("file://."); new URL(base, la.getHref()); + link = la.getHref(); } catch (MalformedURLException mue) { // ok - just skip log("Link href \"" + la.getHref() @@ -1790,7 +1826,7 @@ toExecute.createArgument() .setValue("-linkoffline"); toExecute.createArgument() - .setValue(la.getHref()); + .setValue(link); toExecute.createArgument() .setValue(packageListURL); } catch (MalformedURLException ex) { @@ -1804,7 +1840,7 @@ } } else { toExecute.createArgument().setValue("-link"); - toExecute.createArgument().setValue(la.getHref()); + toExecute.createArgument().setValue(link); } } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]