You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ah...@apache.org on 2006/01/14 01:29:28 UTC
svn commit: r368935 [2/2] - in /maven/maven-1/plugins/trunk/linkcheck: ./
src/main/org/apache/maven/linkcheck/ src/main/org/apache/maven/plugin/
src/main/org/apache/maven/plugin/linkcheck/
src/main/org/apache/maven/plugin/linkcheck/validation/ src/plug...
Added: maven/maven-1/plugins/trunk/linkcheck/src/main/org/apache/maven/plugin/linkcheck/validation/OfflineHTTPLinkValidator.java
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/main/org/apache/maven/plugin/linkcheck/validation/OfflineHTTPLinkValidator.java?rev=368935&view=auto
==============================================================================
--- maven/maven-1/plugins/trunk/linkcheck/src/main/org/apache/maven/plugin/linkcheck/validation/OfflineHTTPLinkValidator.java (added)
+++ maven/maven-1/plugins/trunk/linkcheck/src/main/org/apache/maven/plugin/linkcheck/validation/OfflineHTTPLinkValidator.java Fri Jan 13 16:28:50 2006
@@ -0,0 +1,38 @@
+package org.apache.maven.plugin.linkcheck.validation;
+
+/* ====================================================================
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ====================================================================
+ */
+
+/**
+ * Fake links check when maven is offline
+ * @author <a href="mailto:aheritier@apache.org">Arnaud Heritier</a>
+ * @version $Id: HTTPLinkValidator.java 155277 2005-02-24 23:23:29Z aheritier $
+ */
+public final class OfflineHTTPLinkValidator
+ extends HTTPLinkValidator
+ implements LinkValidator
+{
+
+ /**
+ * @see org.apache.maven.plugin.linkcheck.LinkValidator#validateLink(org.apache.maven.plugin.linkcheck.LinkValidationItem)
+ */
+ public LinkValidationResult validateLink( LinkValidationItem lvi )
+ {
+ return new LinkValidationResult( LinkValidationResult.WARNING, false, "Maven is offline. Link not checked." );
+ }
+
+}
Added: maven/maven-1/plugins/trunk/linkcheck/src/main/org/apache/maven/plugin/linkcheck/validation/OnlineHTTPLinkValidator.java
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/main/org/apache/maven/plugin/linkcheck/validation/OnlineHTTPLinkValidator.java?rev=368935&view=auto
==============================================================================
--- maven/maven-1/plugins/trunk/linkcheck/src/main/org/apache/maven/plugin/linkcheck/validation/OnlineHTTPLinkValidator.java (added)
+++ maven/maven-1/plugins/trunk/linkcheck/src/main/org/apache/maven/plugin/linkcheck/validation/OnlineHTTPLinkValidator.java Fri Jan 13 16:28:50 2006
@@ -0,0 +1,243 @@
+/**
+ *
+ */
+package org.apache.maven.plugin.linkcheck.validation;
+
+import java.io.IOException;
+import java.net.URL;
+
+import org.apache.commons.httpclient.Header;
+import org.apache.commons.httpclient.HostConfiguration;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.HttpState;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.StatusLine;
+import org.apache.commons.httpclient.UsernamePasswordCredentials;
+import org.apache.commons.httpclient.methods.HeadMethod;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Checks links which are normal URLs
+ * @author <a href="mailto:bwalding@apache.org">Ben Walding</a>
+ * @author <a href="mailto:aheritier@apache.org">Arnaud Heritier</a>
+ * @version $Id: HTTPLinkValidator.java 155277 2005-02-24 23:23:29Z aheritier $
+ */
+public final class OnlineHTTPLinkValidator
+ extends HTTPLinkValidator
+{
+ /**
+ * Log for debug output
+ */
+ private final static Log LOG = LogFactory.getLog( OnlineHTTPLinkValidator.class );
+
+ private String proxyHost;
+
+ private int proxyPort;
+
+ private String proxyUser;
+
+ private String proxyPass;
+
+ private transient HttpClient cl;
+
+ public OnlineHTTPLinkValidator( String proxyHost, String proxyPort, String proxyUser, String proxyPass )
+ {
+ if ( proxyHost == null || proxyHost.trim().equals( "" ) )
+ {
+ this.proxyHost = null;
+ }
+ else
+ {
+ this.proxyHost = proxyHost;
+ if ( proxyPort != null )
+ {
+ try
+ {
+ this.proxyPort = Integer.parseInt( proxyPort );
+ }
+ catch ( NumberFormatException e )
+ {
+ LOG.warn( "Invalid number for Proxy Port:" + proxyPort );
+ LOG.warn( "Proxy Port won't be used." );
+ this.proxyPort = -1;
+ }
+ }
+ this.proxyUser = proxyUser;
+ this.proxyPass = proxyPass;
+ }
+ initHttpClient();
+ }
+
+ /**
+ * @see org.apache.maven.plugin.linkcheck.LinkValidator#validateLink(org.apache.maven.plugin.linkcheck.LinkValidationItem)
+ */
+ public LinkValidationResult validateLink( LinkValidationItem lvi )
+ {
+ if ( cl == null )
+ initHttpClient();
+ try
+ {
+ String link = lvi.getLink();
+ HttpMethod hm = null;
+ try
+ {
+ hm = checkLink( cl, link );
+ }
+ catch ( Throwable t )
+ {
+ if ( LOG.isDebugEnabled() )
+ {
+ LOG
+ .error( "Received: [" + t + "] for [" + lvi.getLink() + "] in page [" + lvi.getSource() + "]",
+ t );
+ }
+ else
+ {
+ LOG.error( "Received: [" + t + "] for [" + lvi.getLink() + "] in page [" + lvi.getSource() + "]" );
+ }
+ return new LinkValidationResult( LinkValidationResult.ERROR, false, t.getClass().getName() + " : "
+ + t.getMessage() );
+ }
+ if ( hm == null )
+ return new LinkValidationResult( LinkValidationResult.ERROR, false, "Cannot retreive HTTP Status" );
+ if ( hm.getStatusCode() == HttpStatus.SC_OK )
+ {
+ return new LinkValidationResult( LinkValidationResult.VALID, true, hm.getStatusCode() + " "
+ + hm.getStatusText() );
+ }
+ else
+ {
+ if ( hm.getStatusCode() == HttpStatus.SC_MOVED_PERMANENTLY )
+ {
+ LOG.warn( "Received: [" + hm.getStatusCode() + "] for [" + lvi.getLink() + "] in page ["
+ + lvi.getSource() + "]" );
+ return new LinkValidationResult( LinkValidationResult.WARNING, true, hm.getStatusCode() + " "
+ + hm.getStatusText() );
+ }
+ else
+ {
+ LOG.error( "Received: [" + hm.getStatusCode() + "] for [" + lvi.getLink() + "] in page ["
+ + lvi.getSource() + "]" );
+ return new LinkValidationResult( LinkValidationResult.ERROR, false, hm.getStatusCode() + " "
+ + hm.getStatusText() );
+ }
+ }
+
+ }
+ catch ( Throwable t )
+ {
+ if ( LOG.isDebugEnabled() )
+ LOG.error( "Received: [" + t + "] for [" + lvi.getLink() + "] in page [" + lvi.getSource() + "]", t );
+ else
+ LOG.error( "Received: [" + t + "] for [" + lvi.getLink() + "] in page [" + lvi.getSource() + "]" );
+ return new LinkValidationResult( LinkValidationResult.ERROR, false, t.getMessage() );
+ }
+
+ }
+
+ private void initHttpClient()
+ {
+ LOG.debug( "A new HttpClient instance is needed ..." );
+ // Some web servers doesn't allow the default user-agent sent by httpClient
+ System.setProperty( "httpclient.useragent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" );
+ //cl = new HttpClient( new MultiThreadedHttpConnectionManager() );
+ cl = new HttpClient();
+ HostConfiguration hc = new HostConfiguration();
+ HttpState state = new HttpState();
+ if ( this.proxyHost != null )
+ {
+ hc.setProxy( this.proxyHost, this.proxyPort );
+ if ( LOG.isDebugEnabled() )
+ {
+ LOG.debug( "Proxy Host:" + proxyHost );
+ LOG.debug( "Proxy Port:" + proxyPort );
+ }
+ if ( this.proxyUser != null && this.proxyPass != null )
+ {
+ if ( LOG.isDebugEnabled() )
+ LOG.debug( "Proxy User:" + proxyUser );
+ state
+ .setProxyCredentials( null, null, new UsernamePasswordCredentials( this.proxyUser, this.proxyPass ) );
+ }
+
+ }
+ else
+ {
+ LOG.debug( "Not using a proxy" );
+ }
+ cl.setHostConfiguration( hc );
+ cl.setState( state );
+ LOG.debug( "New HttpClient instance created." );
+ }
+
+ private HttpMethod checkLink( HttpClient cl, String link )
+ throws HttpException, IOException
+ {
+ // execute the HEAD (a GET without the body returned)
+ HttpMethod hm = new HeadMethod( link );
+ try
+ {
+ // We want to do it manually
+ hm.setFollowRedirects( false );
+ URL url = new URL( link );
+ cl.getHostConfiguration().setHost( url.getHost(), url.getPort(), url.getProtocol() );
+ cl.executeMethod( hm );
+ StatusLine sl = hm.getStatusLine();
+
+ if ( sl == null )
+ {
+ LOG.error( "Unknown error validating link : " + link );
+ return null;
+ }
+
+ if ( hm.getStatusCode() == HttpStatus.SC_MOVED_PERMANENTLY
+ || hm.getStatusCode() == HttpStatus.SC_MOVED_TEMPORARILY
+ || hm.getStatusCode() == HttpStatus.SC_TEMPORARY_REDIRECT )
+ {
+ Header locationHeader = hm.getResponseHeader( "location" );
+ if ( locationHeader == null )
+ {
+ LOG.error( "Site sent redirect, but did not set Location header" );
+ return hm;
+ }
+ else
+ {
+ String newLink = locationHeader.getValue();
+ // Be careful to absolute/relative links
+ if ( !newLink.startsWith( "http://" ) && !newLink.startsWith( "https://" ) )
+ {
+ if ( newLink.startsWith( "/" ) )
+ {
+ URL oldUrl = new URL( link );
+ newLink = oldUrl.getProtocol() + "://" + oldUrl.getHost()
+ + ( oldUrl.getPort() > 0 ? ":" + oldUrl.getPort() : "" ) + newLink;
+ }
+ else
+ {
+ newLink = link + newLink;
+ }
+ }
+ HttpMethod oldHm = hm;
+ LOG.info( "[" + link + "] is redirected to [" + newLink + "]" );
+ hm = checkLink( cl, newLink );
+ // Restore the hm to "Moved permanently" if the new location is found to allow us to report it
+ if ( oldHm.getStatusCode() == HttpStatus.SC_MOVED_PERMANENTLY
+ && hm.getStatusCode() == HttpStatus.SC_OK )
+ {
+ return oldHm;
+ }
+ }
+ }
+
+ }
+ finally
+ {
+ hm.releaseConnection();
+ }
+ return hm;
+ }
+
+}
Added: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_error_sml.gif
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_error_sml.gif?rev=368935&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_error_sml.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_unknown_sml.gif
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_unknown_sml.gif?rev=368935&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_unknown_sml.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_valid_sml.gif
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_valid_sml.gif?rev=368935&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_valid_sml.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_warning_sml.gif
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_warning_sml.gif?rev=368935&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/icon_warning_sml.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/trans.gif
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/trans.gif?rev=368935&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/images/trans.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/linkcheck-temp.xml
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/linkcheck-temp.xml?rev=368935&r1=368934&r2=368935&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/linkcheck-temp.xml (original)
+++ maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/linkcheck-temp.xml Fri Jan 13 16:28:50 2006
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!--
/*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,14 +20,10 @@
<document>
<properties>
<title>Maven LinkCheck Plug-in</title>
- <author email="ben@walding.com">Ben Walding</author>
</properties>
-
<body>
<section name="Maven LinkCheck Temporary File">
- <p>
- This file is used as a placeholder until the final link check can occur.
- </p>
+ <p>This file is used as a placeholder until the final link check can occur.</p>
</section>
</body>
</document>
Modified: maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/linkcheck.jsl
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/linkcheck.jsl?rev=368935&r1=368934&r2=368935&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/linkcheck.jsl (original)
+++ maven/maven-1/plugins/trunk/linkcheck/src/plugin-resources/linkcheck.jsl Fri Jan 13 16:28:50 2006
@@ -1,9 +1,8 @@
<?xml version="1.0"?>
-
<!--
* ========================================================================
*
- * Copyright 2004 The Apache Software Foundation.
+ * Copyright 2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,7 +18,6 @@
*
* ========================================================================
-->
-
<jsl:stylesheet
select="$doc"
xmlns:j="jelly:core"
@@ -31,38 +29,48 @@
<jsl:template match="linkcheck">
<document>
-
<properties>
<title>Link Check Report</title>
</properties>
<body>
<section name="Link Check Report">
+ <p><b><span style="color:#00AA00;text-align:right"><x:expr select="count(file)"/> </span></b> file(s) and <b><span style="color:#00AA00;text-align:right"><x:expr select="sum(file/unsuccessful)+sum(file/successful)"/> </span></b> link(s) checked. <b><span style="color:#FF0000;text-align:right"><x:expr select="count(file/result[status='error'])"/></span></b> error(s) and <b><span style="color:#FFA916;text-align:right"><x:expr select="count(file/result[status='warning'])"/></span></b> warning(s) reported in <b><span style="color:#00AA00;text-align:right"><x:expr select="count(file[unsuccessful!=0])"/> </span></b> file(s).</p>
<table summary="Link Check summary">
<thead>
- <tr>
- <th>URL</th>
- </tr>
+ <tr>
+ <th rowspan="2">Document</th>
+ <th colspan="4">links</th>
+ </tr>
+ <tr>
+ <th width="50">total</th>
+ <th width="50"><img align="right" src="images/icon_valid_sml.gif" alt="success"/></th>
+ <th width="50"><img align="right" src="images/icon_warning_sml.gif" alt="warning"/></th>
+ <th width="50"><img align="right" src="images/icon_error_sml.gif" alt="error"/></th>
+ </tr>
</thead>
<tbody>
<x:forEach var="file" select="file[unsuccessful != 0]">
+ <util:replace var="name" oldChar="\\" newChar="/">
+ <x:expr select="$file/name"/>
+ </util:replace>
<tr>
- <td colspan="2">
- <util:replace var="name" oldChar="\\" newChar="/">
- <x:expr select="$file/name"/>
- </util:replace>
- <a href="${name}">${name}</a>
- </td>
+ <td><a href="${name.trim()}">${name.trim()}</a></td>
+ <td width="50" style="text-align:right" nowrap="nowrap"><b><x:expr select="$file/successful + $file/unsuccessful"/></b></td>
+ <td width="50" style="text-align:right"><b><span style="color:#00AA00;text-align:right"><x:expr select="$file/successful"/></span></b></td>
+ <td width="50" style="text-align:right"><b><span style="color:#FFA916;text-align:right"><x:expr select="count($file/result[status='warning'])"/></span></b></td>
+ <td width="50" style="text-align:right"><b><span style="color:#FF0000;text-align:right"><x:expr select="count($file/result[status='error'])"/></span></b></td>
</tr>
<tr>
- <td>
- <x:forEach var="result" select="$file/result">
- <j:set var="status"><x:expr select="$result/status"/></j:set>
- <j:set var="target"><x:expr select="$result/target"/></j:set>
- <j:if test="${status != 'OK'}">
- <p>${status} - ${target}</p>
- </j:if>
- </x:forEach>
- </td>
+ <td colspan="5">
+ <x:forEach var="result" select="$file/result">
+ <j:set var="status"><x:expr select="$result/status"/></j:set>
+ <j:set var="target"><x:expr select="$result/target"/></j:set>
+ <j:set var="errorMessage"><x:expr select="$result/errorMessage"/></j:set>
+ <j:if test="${status != 'valid'}">
+ <img src="images/trans.gif" alt="trans" width="20" height="5" border="0"/><img src="images/icon_${status}_sml.gif" alt="${status}"/><img src="images/trans.gif" alt="trans" width="5" height="5" border="0"/> ${target} - <j:if test="${errorMessage != ''}"><span style="font-style:italic">${errorMessage}</span></j:if><br/>
+ </j:if>
+ </x:forEach>
+ </td>
</tr>
</x:forEach>
</tbody>
@@ -71,4 +79,4 @@
</body>
</document>
</jsl:template>
-</jsl:stylesheet>
+</jsl:stylesheet>
\ No newline at end of file
Modified: maven/maven-1/plugins/trunk/linkcheck/src/plugin-test/maven.xml
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/plugin-test/maven.xml?rev=368935&r1=368934&r2=368935&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/linkcheck/src/plugin-test/maven.xml (original)
+++ maven/maven-1/plugins/trunk/linkcheck/src/plugin-test/maven.xml Fri Jan 13 16:28:50 2006
@@ -21,8 +21,8 @@
</goal>
<goal name="test-linkcheck">
- <attainGoal name="site"/>
<attainGoal name="clean"/>
+ <attainGoal name="site"/>
</goal>
</project>
Modified: maven/maven-1/plugins/trunk/linkcheck/src/plugin-test/xdocs/test.html
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/plugin-test/xdocs/test.html?rev=368935&r1=368934&r2=368935&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/linkcheck/src/plugin-test/xdocs/test.html (original)
+++ maven/maven-1/plugins/trunk/linkcheck/src/plugin-test/xdocs/test.html Fri Jan 13 16:28:50 2006
@@ -16,8 +16,15 @@
*/
-->
<html>
-<body>
-<a href="#bumpkin">test2</a>
-</body>
-
+ <head>
+ <title>test</title>
+ </head>
+ <body>
+ <a href="#bumpkin">test2</a><br/>
+ <a href="http://www.seoconsultants.com/w3c/status-codes/301.asp">301 Moved Permanently</a><br/>
+ <a href="http://www.seoconsultants.com/w3c/status-codes/302.asp">302 Found</a><br/>
+ <a href="http://www.seoconsultants.com/w3c/status-codes/307.asp">307 Temporary Redirect</a><br/>
+ <a href="http://www.seoconsultants.com/w3c/status-codes/404.asp">404 Not Found</a><br/>
+ <a href="http://www.seoconsultants.com/w3c/status-codes/410.asp">410 Gone</a><br/>
+ </body>
</html>
Copied: maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/plugin/linkcheck/LinkCheckTest.java (from r368923, maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/linkcheck/LinkCheckTest.java)
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/plugin/linkcheck/LinkCheckTest.java?p2=maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/plugin/linkcheck/LinkCheckTest.java&p1=maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/linkcheck/LinkCheckTest.java&r1=368923&r2=368935&rev=368935&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/linkcheck/LinkCheckTest.java (original)
+++ maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/plugin/linkcheck/LinkCheckTest.java Fri Jan 13 16:28:50 2006
@@ -1,4 +1,4 @@
-package org.apache.maven.linkcheck;
+package org.apache.maven.plugin.linkcheck;
/* ====================================================================
* Copyright 2001-2004 The Apache Software Foundation.
@@ -22,76 +22,76 @@
import java.util.Iterator;
import java.util.Map;
-
-
import junit.framework.TestCase;
/**
* @author Ben Walding
* @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
*/
-public class LinkCheckTest extends TestCase
+public class LinkCheckTest
+ extends TestCase
{
- String baseDir;
+ String baseDir;
- public void setUp()
- {
- baseDir = System.getProperty("basedir");
- }
-
- public void testScan() throws Exception
- {
- File f = new File(baseDir + "/src/test-resources");
- LinkCheck lc = new LinkCheck();
- lc.setBasedir(f);
- lc.setOutput(new File(baseDir + "/target/linkcheck.xml"));
- lc.setOutputEncoding("ISO8859-1");
- lc.setCache(baseDir + "/target/linkcheck-cache.xml");
- lc.setExclude("http://cvs.apache.org/viewcvs.cgi/maven-pluginszz/,"
- + "http://cvs.apache.org/viewcvs.cgi/mavenzz/");
- lc.doExecute();
-
- Iterator iter = lc.getFiles().iterator();
- Map map = new HashMap();
- while (iter.hasNext())
+ public void setUp()
{
- FileToCheck ftc = (FileToCheck) iter.next();
- map.put(ftc.getName(), ftc);
+ baseDir = System.getProperty( "basedir" );
}
- assertEquals("files.size()", 8, lc.getFiles().size());
+ public void testScan()
+ throws Exception
+ {
+ File f = new File( baseDir + "/src/test-resources" );
+ LinkCheck lc = new LinkCheck();
+ lc.setBasedir( f );
+ lc.setOutput( new File( baseDir + "/target/linkcheck.xml" ) );
+ lc.setOutputEncoding( "ISO8859-1" );
+ lc.setCache( baseDir + "/target/linkcheck-cache.xml" );
+ lc.setExclude( "http://cvs.apache.org/viewcvs.cgi/maven-pluginszz/,"
+ + "http://cvs.apache.org/viewcvs.cgi/mavenzz/" );
+ lc.doExecute();
+
+ Iterator iter = lc.getFiles().iterator();
+ Map map = new HashMap();
+ while ( iter.hasNext() )
+ {
+ FileToCheck ftc = (FileToCheck) iter.next();
+ map.put( ftc.getName(), ftc );
+ }
+
+ assertEquals( "files.size()", 8, lc.getFiles().size() );
+
+ check( map, "nolink.html", 0 );
+ check( map, "test-resources/nolink.html", 0 );
+ check( map, "test-resources/test1/test1.html", 2 );
+ check( map, "test-resources/test1/test2.html", 0 );
+ check( map, "test1/test1.html", 1 );
+ check( map, "testA.html", 3 );
+
+ /* test excludes */
+ String fileName = "testExcludes.html";
+ check( map, fileName, 2 );
+
+ FileToCheck ftc = (FileToCheck) map.get( fileName );
+ assertEquals( "Excluded links", 2, ftc.getSuccessful() );
+
+ //index-all.html should get parsed, but is currently having problems.
+ //check(map, "index-all.html", 1);
- check(map, "nolink.html", 0);
- check(map, "test-resources/nolink.html", 0);
- check(map, "test-resources/test1/test1.html", 2);
- check(map, "test-resources/test1/test2.html", 0);
- check(map, "test1/test1.html", 1);
- check(map, "testA.html", 3);
-
- /* test excludes */
- String fileName = "testExcludes.html";
- check(map, fileName, 2);
-
- FileToCheck ftc = (FileToCheck) map.get(fileName);
- assertEquals("Excluded links", 2, ftc.getSuccessful());
-
- //index-all.html should get parsed, but is currently having problems.
- //check(map, "index-all.html", 1);
-
- }
-
- private void check(Map map, String name, int linkCount)
- {
- FileToCheck ftc;
-
- ftc = (FileToCheck) map.get(name);
- assertNotNull(name, ftc);
-
- /*if (ftc.getResults().size() != linkCount) {
-
- }*/
+ }
- assertEquals(name + ".getLinks().size()", linkCount, ftc.getResults().size());
- }
+ private void check( Map map, String name, int linkCount )
+ {
+ FileToCheck ftc;
+
+ ftc = (FileToCheck) map.get( name );
+ assertNotNull( name, ftc );
+
+ /*if (ftc.getResults().size() != linkCount) {
+
+ }*/
+
+ assertEquals( name + ".getLinks().size()", linkCount, ftc.getResults().size() );
+ }
}
Modified: maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/plugin/linkcheck/validation/HTTPLinkValidatorTest.java
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/plugin/linkcheck/validation/HTTPLinkValidatorTest.java?rev=368935&r1=368923&r2=368935&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/plugin/linkcheck/validation/HTTPLinkValidatorTest.java (original)
+++ maven/maven-1/plugins/trunk/linkcheck/src/test/org/apache/maven/plugin/linkcheck/validation/HTTPLinkValidatorTest.java Fri Jan 13 16:28:50 2006
@@ -1,7 +1,7 @@
-package org.apache.maven.linkcheck.validation;
+package org.apache.maven.plugin.linkcheck.validation;
/* ====================================================================
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Copyright 2001-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,25 +23,45 @@
/**
* @author <a href="bwalding@apache.org">Ben Walding</a>
+ * @author <a href="aheritier@apache.org">Arnaud Heritier</a>
* @version $Id$
*/
-public class HTTPLinkValidatorTest extends TestCase
+public class HTTPLinkValidatorTest
+ extends TestCase
{
+ private LinkValidator hlv;
+
+ private boolean mavenOnline = Boolean.getBoolean( "maven.mode.online" );
public void testValidateLink()
+ throws Exception
{
- //I've disabled these as they require access to the net. Ultimately
- //I'd like to setup a temporary internal webserver during testing.
- //Probably a test repository so it can be used for a variety of things.
- //checkLink("http://www.example.com");
- //checkLink("http://www.example.com>);");
+ System.err.println( "maven.mode.online : " + mavenOnline );
+ if ( mavenOnline )
+ {
+ hlv = new OnlineHTTPLinkValidator( System.getProperty( "maven.proxy.host" ), System
+ .getProperty( "maven.proxy.port" ), System.getProperty( "maven.proxy.username" ), System
+ .getProperty( "maven.proxy.password" ) );
+
+ assertEquals( LinkValidationResult.VALID, checkLink( "http://www.apache.org" ).getStatus() );
+ assertEquals( LinkValidationResult.ERROR, checkLink( "http://www.example.com>);" ).getStatus() );
+ }
+ else
+ {
+ hlv = new OfflineHTTPLinkValidator();
+
+ assertEquals( LinkValidationResult.WARNING, checkLink( "http://www.apache.org" ).getStatus() );
+ assertEquals( LinkValidationResult.WARNING, checkLink( "http://www.example.com>);" ).getStatus() );
+
+ }
}
- protected LinkValidationResult checkLink(String link)
+ protected LinkValidationResult checkLink( String link )
+ throws Exception
{
- HTTPLinkValidator hlv = new HTTPLinkValidator(null, null, null, null);
- LinkValidationItem lvi = new LinkValidationItem(new File("."), link);
- return hlv.validateLink(lvi);
+
+ LinkValidationItem lvi = new LinkValidationItem( new File( "." ), link );
+ return hlv.validateLink( lvi );
}
}
Modified: maven/maven-1/plugins/trunk/linkcheck/xdocs/changes.xml
URL: http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/linkcheck/xdocs/changes.xml?rev=368935&r1=368934&r2=368935&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/linkcheck/xdocs/changes.xml (original)
+++ maven/maven-1/plugins/trunk/linkcheck/xdocs/changes.xml Fri Jan 13 16:28:50 2006
@@ -26,6 +26,12 @@
</properties>
<body>
<release version="1.4-SNAPSHOT" date="in SVN">
+ <action dev="aheritier" type="update" issue="MPLINKCHECK-10">"Moved Permanently" sites are reported as a warning and not as an error.</action>
+ <action dev="aheritier" type="update" issue="MPLINKCHECK-24">Speed and stability enhancement [better usage of httpClient].</action>
+ <action dev="aheritier" type="update" issue="MPLINKCHECK-24,MAVEN-1739">Upgrade to HttpClient 3.0.</action>
+ <action dev="aheritier" type="add" issue="MPLINKCHECK-25">Display for each file the number of links and the number of errors.</action>
+ <action dev="aheritier" type="add" issue="MPLINKCHECK-25">New counters to report how many files and links are checked and how many errors are found.</action>
+ <action dev="aheritier" type="update" issue="MPLINKCHECK-25">Display a more verbose message than the "NOT FOUND" error.</action>
<action dev="aheritier" type="update" issue="MAVEN-1712">Update dependencies to match ones in maven 1.1 core and to unify them between plugins. The following dependencies are updated :
<ul>
<li>commons-collections v2.1 -> v3.0</li>