You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by bw...@apache.org on 2003/02/22 01:37:31 UTC

cvs commit: jakarta-turbine-maven/src/plugins-build/linkcheck/src/main/org/apache/maven/linkcheck/validation HTTPLinkValidator.java

bwalding    2003/02/21 16:37:31

  Modified:    src/plugins-build/linkcheck/src/main/org/apache/maven/linkcheck
                        LinkCheck.java FileToCheck.java
               src/plugins-build/linkcheck/src/main/org/apache/maven/linkcheck/validation
                        HTTPLinkValidator.java
  Log:
  o MAVEN-286: Now enabled by default.  Recognises proxies, not as many spurious messages.
  
  Revision  Changes    Path
  1.6       +32 -2     jakarta-turbine-maven/src/plugins-build/linkcheck/src/main/org/apache/maven/linkcheck/LinkCheck.java
  
  Index: LinkCheck.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/plugins-build/linkcheck/src/main/org/apache/maven/linkcheck/LinkCheck.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- LinkCheck.java	15 Feb 2003 08:04:20 -0000	1.5
  +++ LinkCheck.java	22 Feb 2003 00:37:31 -0000	1.6
  @@ -67,10 +67,12 @@
   
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  +import org.apache.maven.jelly.MavenJellyContext;
   import org.apache.maven.linkcheck.validation.FileLinkValidator;
   import org.apache.maven.linkcheck.validation.HTTPLinkValidator;
   import org.apache.maven.linkcheck.validation.LinkValidatorManager;
   import org.apache.maven.linkcheck.validation.MailtoLinkValidator;
  +import org.apache.maven.project.Project;
   
   import com.meterware.httpunit.HttpUnitOptions;
   
  @@ -97,6 +99,7 @@
       private File baseDir;
       private String cache;
       private String exclude;
  +    private Project project;
   
       /**
        * Set the base directory for the change log generator.
  @@ -261,7 +264,16 @@
               lvm = new LinkValidatorManager();
               lvm.setExclude(exclude);
               lvm.addLinkValidator(new FileLinkValidator());
  -            lvm.addLinkValidator(new HTTPLinkValidator());
  +            MavenJellyContext ctx;
  +            if (getProject() == null) {
  +                System.out.println("No project set.");
  +                ctx = new MavenJellyContext();
  +            } else {
  +                System.out.println("Project set:" + getProject());
  +                ctx = ((Project) getProject()).getContext();
  +            }
  +                
  +            lvm.addLinkValidator(new HTTPLinkValidator(ctx.getProxyHost(), ctx.getProxyPort(), ctx.getProxyUserName(), ctx.getProxyPassword()));
               lvm.addLinkValidator(new MailtoLinkValidator());
               lvm.loadCache(cache);
           }
  @@ -319,6 +331,24 @@
           //buf.append("  </files>\n");
           buf.append("</linkcheck>\n");
           return buf.toString();
  +    }
  +
  +    /**
  +     * @return Project
  +     */
  +    public Object getProject()
  +    {
  +        return project;
  +    }
  +
  +    /**
  +     * Sets the project.
  +     * @param project The project to set
  +     */
  +    public void setProject(Object project)
  +    {
  +        System.out.println("Setting project: " + project);
  +        this.project = (Project) project;
       }
   
   }
  
  
  
  1.5       +3 -1      jakarta-turbine-maven/src/plugins-build/linkcheck/src/main/org/apache/maven/linkcheck/FileToCheck.java
  
  Index: FileToCheck.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/plugins-build/linkcheck/src/main/org/apache/maven/linkcheck/FileToCheck.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FileToCheck.java	15 Feb 2003 08:03:23 -0000	1.4
  +++ FileToCheck.java	22 Feb 2003 00:37:31 -0000	1.5
  @@ -106,6 +106,8 @@
       status = STATUS_OK;
       message = "";
   
  +
  +
       try
       {
         WebConversation wc = new WebConversation();
  
  
  
  1.3       +59 -11    jakarta-turbine-maven/src/plugins-build/linkcheck/src/main/org/apache/maven/linkcheck/validation/HTTPLinkValidator.java
  
  Index: HTTPLinkValidator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/plugins-build/linkcheck/src/main/org/apache/maven/linkcheck/validation/HTTPLinkValidator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- HTTPLinkValidator.java	3 Feb 2003 14:13:54 -0000	1.2
  +++ HTTPLinkValidator.java	22 Feb 2003 00:37:31 -0000	1.3
  @@ -55,10 +55,11 @@
    *
    * ====================================================================
    */
  - 
  +
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   
  +import com.meterware.httpunit.Base64;
   import com.meterware.httpunit.GetMethodWebRequest;
   import com.meterware.httpunit.WebConversation;
   import com.meterware.httpunit.WebRequest;
  @@ -69,7 +70,8 @@
    * @author <a href="mailto:bwalding@apache.org">Ben Walding</a>
    * @version $Id$
    */
  -public class HTTPLinkValidator implements LinkValidator {
  +public class HTTPLinkValidator implements LinkValidator
  +{
       /**
        * Log for debug output
        */
  @@ -78,28 +80,73 @@
       private final static LinkValidationResult LVR_INVALID =
           new LinkValidationResult(LinkValidationResult.INVALID, true);
   
  -    private final static LinkValidationResult LVR_VALID =
  -        new LinkValidationResult(LinkValidationResult.VALID, true);
  +    private final static LinkValidationResult LVR_VALID = new LinkValidationResult(LinkValidationResult.VALID, true);
  +
  +    private boolean proxy;
  +    private String proxyHost;
  +    private int proxyPort;
  +    private String proxyUser;
  +    private String proxyPass;
  +
  +    public HTTPLinkValidator(String proxyHost, String proxyPort, String proxyUser, String proxyPass)
  +    {
  +        if (proxyHost == null)
  +        {
  +            proxy = false;
  +            LOG.info("Not using a proxy");
  +        }
  +        else
  +        {
  +            proxy = true;
  +            this.proxyHost = proxyHost;
  +            this.proxyPass = proxyPass;
  +            this.proxyUser = proxyUser;
  +            this.proxyPort = Integer.parseInt(proxyPort);
  +            LOG.info("Using Proxy Host:" + proxyHost);
  +            LOG.info("Using Proxy Port:" + proxyPort);
  +            LOG.info("Using Proxy User:" + proxyUser);
  +        }
  +    }
   
       /**
        * @see org.apache.maven.linkcheck.LinkValidator#validateLink(org.apache.maven.linkcheck.LinkValidationItem)
        */
  -    public LinkValidationResult validateLink(LinkValidationItem lvi) {
  -        try {
  +    public LinkValidationResult validateLink(LinkValidationItem lvi)
  +    {
  +        try
  +        {
               String link = lvi.getLink();
               LOG.debug("Checking web link:" + link);
               WebConversation wc = new WebConversation();
  +            if (proxy)
  +            {
  +                wc.setProxyServer(proxyHost, proxyPort);
  +                if (proxyUser != null)
  +                {
  +                    String auth = proxyUser + ":" + proxyPass;
  +                    wc.setHeaderField("Proxy-Authorization", "Basic " + Base64.encode(auth));
  +                }
  +            }
  +
               wc.setExceptionsThrownOnErrorStatus(false);
               WebRequest req = new GetMethodWebRequest(link);
               WebResponse resp = wc.getResponse(req);
   
               //FIXME: This constant is defined somewhere, but I can't remember where...
  -            if (resp.getResponseCode() == 200) {
  +            if (resp.getResponseCode() == 200)
  +            {
                   return LVR_VALID;
  -            } else {
  +            }
  +            else
  +            {
  +                String msg = "Received: [" + resp.getResponseCode() + "] \"" + resp.getResponseMessage() + "\" for " + link;
  +                LOG.info(msg);
  +                System.out.println(msg);
                   return LVR_INVALID;
               }
  -        } catch (Exception e) {
  +        }
  +        catch (Exception e)
  +        {
               LOG.warn("Error accessing " + lvi.getLink(), e);
               e.printStackTrace();
               return LVR_INVALID;
  @@ -110,7 +157,8 @@
       /**
        * @see org.apache.maven.linkcheck.LinkValidator#getResourceKey(org.apache.maven.linkcheck.LinkValidationItem)
        */
  -    public Object getResourceKey(LinkValidationItem lvi) {
  +    public Object getResourceKey(LinkValidationItem lvi)
  +    {
           String link = lvi.getLink();
   
           if (!link.startsWith("http://"))