diff --git a/pom.xml b/pom.xml
index 26ab65cb..ecb186c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -371,12 +371,6 @@ under the License.
2.28.2
test
-
- junit-addons
- junit-addons
- 1.4
- test
-
org.mortbay.jetty
jetty
diff --git a/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java b/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java
index 1e516ccc..5c3336eb 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/MailingListsReport.java
@@ -24,7 +24,6 @@
import org.apache.maven.model.Model;
import org.apache.maven.plugins.annotations.Mojo;
import org.codehaus.plexus.i18n.I18N;
-import org.codehaus.plexus.util.StringUtils;
import java.util.ArrayList;
import java.util.Iterator;
@@ -169,8 +168,9 @@ public void renderBody()
if ( mailingList.getArchive() != null && mailingList.getArchive().length() > 0 )
{
- textRow.add( createLinkPatternedText( getArchiveServer( mailingList.getArchive() ),
- mailingList.getArchive() ) );
+ textRow.add( createLinkPatternedText(
+ ProjectInfoReportUtils.getArchiveServer( mailingList.getArchive() ),
+ mailingList.getArchive() ) );
}
else
{
@@ -183,7 +183,8 @@ public void renderBody()
Iterator it = mailingList.getOtherArchives().iterator();
String otherArchive = it.next();
- textRow.add( createLinkPatternedText( getArchiveServer( otherArchive ), otherArchive ) );
+ textRow.add( createLinkPatternedText(
+ ProjectInfoReportUtils.getArchiveServer( otherArchive ), otherArchive ) );
tableRow( textRow.toArray( new String[textRow.size()] ) );
@@ -210,7 +211,8 @@ public void renderBody()
// Archive
textRow.add( " " );
- textRow.add( createLinkPatternedText( getArchiveServer( otherArchive ), otherArchive ) );
+ textRow.add( createLinkPatternedText(
+ ProjectInfoReportUtils.getArchiveServer( otherArchive ), otherArchive ) );
tableRow( textRow.toArray( new String[textRow.size()] ) );
}
@@ -250,41 +252,5 @@ private String createEmailLinkPatternedText( String text, String href, String de
return createLinkPatternedText( text,
href.toLowerCase( Locale.ENGLISH ).startsWith( "mailto:" ) ? href : "mailto:" + href );
}
-
- /**
- * Convenience method to return the name of a web-based mailing list archive server.
- * For instance, if the archive uri is http://www.mail-archive.com/dev@maven.apache.org
, this
- * method return www.mail-archive.com
- *
- * @param uri
- * @return the server name of a web-based mailing list archive server
- */
- private static String getArchiveServer( String uri )
- {
- if ( StringUtils.isEmpty( uri ) )
- {
- return "???UNKNOWN???";
- }
-
- int at = uri.indexOf( "//" );
- int fromIndex;
- if ( at >= 0 )
- {
- fromIndex = uri.lastIndexOf( '/', at - 1 ) >= 0 ? 0 : at + 2;
- }
- else
- {
- fromIndex = 0;
- }
-
- int from = uri.indexOf( '/', fromIndex );
-
- if ( from == -1 )
- {
- return uri.substring( at + 2 );
- }
-
- return uri.substring( at + 2, from );
- }
}
}
diff --git a/src/main/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtils.java b/src/main/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtils.java
index 3cb22b95..d1c6bd9e 100644
--- a/src/main/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtils.java
+++ b/src/main/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtils.java
@@ -23,6 +23,7 @@
import java.io.InputStream;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
+import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
import java.security.KeyManagementException;
@@ -276,6 +277,23 @@ public static boolean isArtifactUrlValid( String url )
return URL_VALIDATOR.isValid( url );
}
+ /**
+ * Convenience method to return the name of a web-based mailing list archive server.
+ * For instance, if the archive URI is http://www.mail-archive.com/dev@maven.apache.org
, this
+ * method returns www.mail-archive.com
+ *
+ * @param uri the URI parse
+ * @return the server host of a web-based mailing list archive server
+ */
+ public static String getArchiveServer( String uri )
+ {
+ if ( uri == null )
+ {
+ return "???UNKNOWN???";
+ }
+ return URI.create( uri ).getHost();
+ }
+
/**
* @param url not null
* @param project not null
diff --git a/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java b/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java
index 2c47857f..f8237f9d 100644
--- a/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java
+++ b/src/test/java/org/apache/maven/report/projectinfo/MailingListsReportTest.java
@@ -22,10 +22,6 @@
import java.net.URL;
import java.util.Locale;
-import org.apache.maven.report.projectinfo.MailingListsReport.MailingListsRenderer;
-
-import junitx.util.PrivateAccessor;
-
import com.meterware.httpunit.GetMethodWebRequest;
import com.meterware.httpunit.TextBlock;
import com.meterware.httpunit.WebConversation;
@@ -108,39 +104,4 @@ public void testFrenchReport()
Locale.setDefault( oldLocale );
}
}
-
- /**
- * @throws Throwable if any
- */
- public void testGetArchiveServer()
- throws Throwable
- {
- String server = "http://mail-archives.apache.org/mod_mbox/maven-announce/";
- assertEquals( "mail-archives.apache.org", invokeGetArchiveServer( server ) );
-
- server = "http://mail-archives.apache.org/mod_mbox/maven-announce";
- assertEquals( "mail-archives.apache.org", invokeGetArchiveServer( server ) );
-
- server = "http://www.mail-archive.com/announce@maven.apache.org";
- assertEquals( "www.mail-archive.com", invokeGetArchiveServer( server ) );
-
- server = "http://www.nabble.com/Maven-Announcements-f15617.html";
- assertEquals( "www.nabble.com", invokeGetArchiveServer( server ) );
-
- server = "http://maven.announce.markmail.org/";
- assertEquals( "maven.announce.markmail.org", invokeGetArchiveServer( server ) );
-
- server = "http://maven.announce.markmail.org";
- assertEquals( "maven.announce.markmail.org", invokeGetArchiveServer( server ) );
- }
-
- /**
- * @throws Throwable if any
- */
- private static String invokeGetArchiveServer( String s )
- throws Throwable
- {
- return (String) PrivateAccessor.invoke( MailingListsRenderer.class, "getArchiveServer",
- new Class[] { String.class }, new Object[] { s } );
- }
}
diff --git a/src/test/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtilsTest.java b/src/test/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtilsTest.java
index 03c71b92..822897b7 100644
--- a/src/test/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtilsTest.java
+++ b/src/test/java/org/apache/maven/report/projectinfo/ProjectInfoReportUtilsTest.java
@@ -43,6 +43,8 @@
import org.mortbay.jetty.security.SslSocketConnector;
import org.mortbay.jetty.webapp.WebAppContext;
+import static org.apache.maven.report.projectinfo.ProjectInfoReportUtils.getArchiveServer;
+
/**
* @author Vincent Siveton
* @version $Id$
@@ -191,6 +193,31 @@ public void testGetInputStreamURL()
// TODO need to test with a proxy
}
+ public void testGetArchiveServer()
+ {
+ assertEquals( "???UNKNOWN???", getArchiveServer( null ) );
+
+ assertNull( getArchiveServer( "" ) );
+
+ assertEquals( "mail-archives.apache.org",
+ getArchiveServer( "http://mail-archives.apache.org/mod_mbox/maven-announce/" ) );
+
+ assertEquals( "mail-archives.apache.org",
+ getArchiveServer( "https://mail-archives.apache.org/mod_mbox/maven-announce/" ) );
+
+ assertEquals( "mail-archives.apache.org",
+ getArchiveServer( "http://mail-archives.apache.org/mod_mbox/maven-announce" ) );
+
+ assertEquals( "www.mail-archive.com",
+ getArchiveServer( "http://www.mail-archive.com/announce@maven.apache.org" ) );
+
+ assertEquals( "www.nabble.com", getArchiveServer( "http://www.nabble.com/Maven-Announcements-f15617.html" ) );
+
+ assertEquals( "maven.announce.markmail.org", getArchiveServer( "http://maven.announce.markmail.org/" ) );
+
+ assertEquals( "maven.announce.markmail.org", getArchiveServer( "http://maven.announce.markmail.org" ) );
+ }
+
private void startJetty( boolean isSSL, boolean withAuth )
throws Exception
{