You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by de...@apache.org on 2008/03/22 22:57:25 UTC
svn commit: r640091 - in /maven/shared/trunk/maven-doxia-tools/src:
main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java
test/java/org/apache/maven/doxia/tools/SiteToolTest.java
Author: dennisl
Date: Sat Mar 22 14:57:24 2008
New Revision: 640091
URL: http://svn.apache.org/viewvc?rev=640091&view=rev
Log:
[MSITE-284] getRelativePath fails on non-normalized inputs
Submitted by: Benjamin Bentmann
Reviewed by: Dennis Lundberg
Modified:
maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java
maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java
Modified: maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java?rev=640091&r1=640090&r2=640091&view=diff
==============================================================================
--- maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java (original)
+++ maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java Sat Mar 22 14:57:24 2008
@@ -19,22 +19,6 @@
* under the License.
*/
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.StringTokenizer;
-
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -57,6 +41,7 @@
import org.apache.maven.reporting.MavenReport;
import org.codehaus.plexus.i18n.I18N;
import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.StringUtils;
@@ -66,6 +51,22 @@
import org.codehaus.plexus.util.interpolation.RegexBasedInterpolator;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.StringTokenizer;
+
/**
* Default implementation of the site tool.
*
@@ -184,6 +185,16 @@
return getSkinArtifactFromRepository( localRepository, remoteArtifactRepositories, new DecorationModel() );
}
+ protected String getNormalizedPath( String path )
+ {
+ String normalized = null;
+ if ( path != null )
+ {
+ normalized = FileUtils.normalize( path.replace( '\\', '/' ) );
+ }
+ return ( normalized == null ) ? path : normalized;
+ }
+
/** {@inheritDoc} */
public String getRelativePath( String to, String from )
{
@@ -210,7 +221,7 @@
{
try
{
- toUrl = new File( to ).toURL();
+ toUrl = new File( getNormalizedPath( to ) ).toURL();
}
catch ( MalformedURLException e1 )
{
@@ -226,7 +237,7 @@
{
try
{
- fromUrl = new File( from ).toURL();
+ fromUrl = new File( getNormalizedPath( from ) ).toURL();
}
catch ( MalformedURLException e1 )
{
@@ -724,6 +735,7 @@
{
pomFile = new File( pomFile, "pom.xml" );
}
+ pomFile = new File( getNormalizedPath( pomFile.getPath() ) );
MavenProject mavenProject = mavenProjectBuilder.build( pomFile, localRepository, null );
Modified: maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java?rev=640091&r1=640090&r2=640091&view=diff
==============================================================================
--- maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java (original)
+++ maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java Sat Mar 22 14:57:24 2008
@@ -166,6 +166,14 @@
from = "/myproject/myproject";
assertEquals( "Sibling directory with similar name",
".." + File.separator + "myproject-module1", tool.getRelativePath( to, from ) );
+
+ // Normalized paths as described in MSITE-284
+ assertEquals( ".." + File.separator + "project-module-1" + File.separator + "src" + File.separator + "site",
+ tool.getRelativePath( "Z:\\dir\\project\\project-module-1\\src\\site",
+ "Z:\\dir\\project\\project-module-1\\..\\project-parent") );
+ assertEquals( ".." + File.separator + ".." + File.separator + ".." + File.separator + "project-parent",
+ tool.getRelativePath( "Z:\\dir\\project\\project-module-1\\..\\project-parent",
+ "Z:\\dir\\project\\project-module-1\\src\\site") );
}
/**