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]

Reply via email to