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
     {