fix encode URL to preserve trailing slash
diff --git a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/EncodingUtil.java b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/EncodingUtil.java
index 67f5e5f..c0a992c 100644
--- a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/EncodingUtil.java
+++ b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/EncodingUtil.java
@@ -92,7 +92,13 @@
{
String[] pathSegments = path == null ? new String[0] : path.split( "/" );
- return encodeURLToString( baseUrl, pathSegments );
+ String encodedUrl = encodeURLToString( baseUrl, pathSegments );
+ if ( path != null && path.endsWith( "/" ) )
+ {
+ return encodedUrl + "/";
+ }
+
+ return encodedUrl;
}
/**
diff --git a/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/EncodingUtilTest.java b/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/EncodingUtilTest.java
index 4ec549c..0b73317 100644
--- a/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/EncodingUtilTest.java
+++ b/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/EncodingUtilTest.java
@@ -25,8 +25,31 @@
import java.net.URISyntaxException;
public class EncodingUtilTest
- extends TestCase
-{
+ extends TestCase {
+ public void testEncodeURLWithTrailingSlash()
+ {
+ String baseUrl = "https://host:1234/test";
+ String path = "demo.zip/";
+ String expectedUrl = String.format( "%s/%s", baseUrl, path );
+
+ String encodedURL = EncodingUtil.encodeURLToString( baseUrl, path );
+
+ assertEquals( expectedUrl, encodedURL );
+ }
+
+ public void testEncodeUrlApisConsistent()
+ {
+ String baseUrl = "https://host:1234/test";
+ String path = "demo.zip/";
+ String fullUrl = String.format( "%s/%s", baseUrl, path );
+
+ String encodedFullURLToString = EncodingUtil.encodeURLToString( fullUrl );
+ String encodedURLToString = EncodingUtil.encodeURLToString( baseUrl, path );
+
+ assertEquals( encodedFullURLToString, fullUrl );
+ assertEquals( encodedFullURLToString, encodedURLToString );
+ }
+
public void testEncodeURLWithSpaces()
throws URISyntaxException, MalformedURLException
{