diff --git a/linkcheck/plugin.jelly b/linkcheck/plugin.jelly
index 903f95ea..362b4a50 100644
--- a/linkcheck/plugin.jelly
+++ b/linkcheck/plugin.jelly
@@ -7,18 +7,15 @@
xmlns:doc="doc">
-
-
-
-
-
-
+
+
+
@@ -38,8 +35,8 @@
-->
- This run of linkcheck does nothing except create a template linkcheck file
-
+
@@ -48,39 +45,30 @@
- BaseDir: ${basedir}
+ description="Generate link check results and then transform to HTML">
-
-
- Generating the LinkCheck report
-
+
+
-
+
-
- maven.xdoc.src: ${maven.xdoc.src}
-
-
-
- LinkCheck not enabled as maven.linkcheck.enable is not defined.
-
-
-
+
+
/www/jakarta.apache.org/builds/jakarta-turbine-maven/
+
+ commons-beanutils
+ 1.6
+
+ root.maven
+
+
+
+ commons-collections
+ 2.1
+
+ root.maven
+
+
+
+ commons-jelly
+ 20030211.141339
+
+ root.maven
+
+
commons-util
final
@@ -46,6 +67,15 @@
root.maven
+
+ commons-jelly
+ commons-jelly-tags-ant
+ 20030211.142045
+ http://jakarta.apache.org/commons/jelly/tags/ant/
+
+ root.maven
+
+
commons-logging
1.0
@@ -53,6 +83,13 @@
root.maven
+
+ dom4j
+ 1.4-dev-8
+
+ root.maven
+
+
httpunit
1.5.1
@@ -67,6 +104,15 @@
root.maven
+
+
+ maven
+
+ maven.jar
+
+ root.maven
+
+
rhino
1.5R4-RC3
@@ -75,6 +121,15 @@
root.maven
+
+ werkz
+ 1.0-beta-7
+ http://werkz.sourceforge.net/
+
+ root.maven
+
+
+
diff --git a/linkcheck/src/main/org/apache/maven/linkcheck/FileToCheck.java b/linkcheck/src/main/org/apache/maven/linkcheck/FileToCheck.java
index abe4c4c2..135c70ed 100644
--- a/linkcheck/src/main/org/apache/maven/linkcheck/FileToCheck.java
+++ b/linkcheck/src/main/org/apache/maven/linkcheck/FileToCheck.java
@@ -75,7 +75,7 @@ import com.meterware.httpunit.WebResponse;
/**
* @author Ben Walding
- * @version $Id: FileToCheck.java,v 1.4 2003/02/15 08:03:23 bwalding Exp $
+ * @version $Id: FileToCheck.java,v 1.5 2003/02/22 00:37:31 bwalding Exp $
*
*/
public class FileToCheck
@@ -106,6 +106,8 @@ public class FileToCheck
status = STATUS_OK;
message = "";
+
+
try
{
WebConversation wc = new WebConversation();
diff --git a/linkcheck/src/main/org/apache/maven/linkcheck/LinkCheck.java b/linkcheck/src/main/org/apache/maven/linkcheck/LinkCheck.java
index 8ce9577a..a8952f3c 100644
--- a/linkcheck/src/main/org/apache/maven/linkcheck/LinkCheck.java
+++ b/linkcheck/src/main/org/apache/maven/linkcheck/LinkCheck.java
@@ -67,10 +67,12 @@ import java.util.List;
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;
@@ -79,7 +81,7 @@ import com.meterware.httpunit.HttpUnitOptions;
* their links checked.
*
* @author Ben Walding
- * @version $Id: LinkCheck.java,v 1.5 2003/02/15 08:04:20 bwalding Exp $
+ * @version $Id: LinkCheck.java,v 1.6 2003/02/22 00:37:31 bwalding Exp $
*/
public class LinkCheck
{
@@ -97,6 +99,7 @@ public class LinkCheck
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 @@ public class LinkCheck
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);
}
@@ -321,4 +333,22 @@ public class LinkCheck
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;
+ }
+
}
\ No newline at end of file
diff --git a/linkcheck/src/main/org/apache/maven/linkcheck/validation/HTTPLinkValidator.java b/linkcheck/src/main/org/apache/maven/linkcheck/validation/HTTPLinkValidator.java
index 67906161..3fbd94a8 100644
--- a/linkcheck/src/main/org/apache/maven/linkcheck/validation/HTTPLinkValidator.java
+++ b/linkcheck/src/main/org/apache/maven/linkcheck/validation/HTTPLinkValidator.java
@@ -55,10 +55,11 @@ package org.apache.maven.linkcheck.validation;
*
* ====================================================================
*/
-
+
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;
@@ -67,9 +68,10 @@ import com.meterware.httpunit.WebResponse;
/**
* Checks links which are normal URLs
* @author Ben Walding
- * @version $Id: HTTPLinkValidator.java,v 1.2 2003/02/03 14:13:54 bwalding Exp $
+ * @version $Id: HTTPLinkValidator.java,v 1.3 2003/02/22 00:37:31 bwalding Exp $
*/
-public class HTTPLinkValidator implements LinkValidator {
+public class HTTPLinkValidator implements LinkValidator
+{
/**
* Log for debug output
*/
@@ -78,28 +80,73 @@ public class HTTPLinkValidator implements LinkValidator {
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 @@ public class HTTPLinkValidator implements LinkValidator {
/**
* @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://"))
diff --git a/linkcheck/src/test/org/apache/maven/linkcheck/LinkCheckTest.java b/linkcheck/src/test/org/apache/maven/linkcheck/LinkCheckTest.java
index 948cc71a..75df9cd0 100644
--- a/linkcheck/src/test/org/apache/maven/linkcheck/LinkCheckTest.java
+++ b/linkcheck/src/test/org/apache/maven/linkcheck/LinkCheckTest.java
@@ -61,6 +61,7 @@ import java.util.Iterator;
import java.util.Map;
+
import junit.framework.TestCase;
/**
@@ -73,7 +74,7 @@ public class LinkCheckTest extends TestCase
public void setUp()
{
- baseDir = System.getProperty("basedir");
+ baseDir = System.getProperty("basedir");
}
public void testScan() throws Exception