Refactoring ``wagon-webdav-jackrabbit`` to reuse shared ``EncodingUtil``

Project: http://git-wip-us.apache.org/repos/asf/maven-wagon/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-wagon/commit/52564d96
Tree: http://git-wip-us.apache.org/repos/asf/maven-wagon/tree/52564d96
Diff: http://git-wip-us.apache.org/repos/asf/maven-wagon/diff/52564d96

Branch: refs/heads/master
Commit: 52564d9686b5b4e3f76158992ee9b528fc088eef
Parents: b380141
Author: Roberto Andrade <[email protected]>
Authored: Tue Jul 22 19:53:40 2014 -0400
Committer: Roberto Andrade <[email protected]>
Committed: Tue Jul 22 19:53:40 2014 -0400

----------------------------------------------------------------------
 .../webdav/AbstractHttpClientWagon.java         | 56 ++++++++++----------
 1 file changed, 28 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/52564d96/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java
----------------------------------------------------------------------
diff --git 
a/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java
 
b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java
index 51953a9..85b3b76 100644
--- 
a/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java
+++ 
b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/AbstractHttpClientWagon.java
@@ -19,6 +19,20 @@ package org.apache.maven.wagon.providers.webdav;
  * under the License.
  */
 
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Properties;
+import java.util.TimeZone;
+import java.util.zip.GZIPInputStream;
+
 import org.apache.commons.httpclient.Credentials;
 import org.apache.commons.httpclient.Header;
 import org.apache.commons.httpclient.HostConfiguration;
@@ -53,21 +67,7 @@ import org.apache.maven.wagon.events.TransferEvent;
 import org.apache.maven.wagon.proxy.ProxyInfo;
 import org.apache.maven.wagon.repository.Repository;
 import org.apache.maven.wagon.resource.Resource;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URLEncoder;
-import java.nio.ByteBuffer;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.Properties;
-import java.util.TimeZone;
-import java.util.zip.GZIPInputStream;
+import org.apache.maven.wagon.shared.http.EncodingUtil;
 
 /**
  * @author <a href="[email protected]">Michal Maczka</a>
@@ -319,28 +319,28 @@ public abstract class AbstractHttpClientWagon
     private void put( final InputStream stream, Resource resource, File source 
)
         throws TransferFailedException, AuthorizationException, 
ResourceDoesNotExistException
     {
-        StringBuilder url = new StringBuilder( getRepository().getUrl() );
-        String[] parts = StringUtils.split( resource.getName(), "/" );
-        for ( String part : parts )
-        {
-            // TODO: Fix encoding...
-            if ( !url.toString().endsWith( "/" ) )
-            {
-                url.append( '/' );
-            }
-            url.append( URLEncoder.encode( part ) );
-        }
         RequestEntityImplementation requestEntityImplementation =
             new RequestEntityImplementation( stream, resource, this, source );
-        put( resource, source, requestEntityImplementation, url.toString() );
+        
+               put( resource, source, requestEntityImplementation, buildUrl( 
resource ) );
+
+    }
 
+    /**
+     * Builds a complete URL string from the repository URL and the relative 
path of the resource passed.
+     *
+     * @param resource the resource to extract the relative path from.
+     * @return the complete URL
+     */
+    private String buildUrl( Resource resource )
+    {
+       return EncodingUtil.encodeURLToString( getRepository().getUrl(), 
resource.getName() );
     }
 
     private void put( Resource resource, File source, 
RequestEntityImplementation requestEntityImplementation,
                       String url )
         throws TransferFailedException, AuthorizationException, 
ResourceDoesNotExistException
     {
-
         // preemptive true for put
         client.getParams().setAuthenticationPreemptive( true );
 

Reply via email to