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://"))