restore user agent feature

Signed-off-by: olivier lamy <[email protected]>


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

Branch: refs/heads/master
Commit: 578478e4691929bb18648dd64cd7e4b2528ee5ce
Parents: f3757e0
Author: olivier lamy <[email protected]>
Authored: Tue Jul 4 14:54:40 2017 +1000
Committer: olivier lamy <[email protected]>
Committed: Tue Jul 4 22:15:09 2017 +1000

----------------------------------------------------------------------
 .../shared/http/AbstractHttpClientWagon.java    | 12 ++++-
 .../wagon/providers/webdav/WebDavWagon.java     | 46 ++++++++++++++++----
 .../providers/webdav/HttpClientWagonTest.java   |  2 +-
 3 files changed, 49 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/578478e4/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
----------------------------------------------------------------------
diff --git 
a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
 
b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
index f183f9b..eba6169 100755
--- 
a/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
+++ 
b/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
@@ -845,7 +845,7 @@ public abstract class AbstractHttpClientWagon
         if ( config == null || config.isUseDefaultHeaders() )
         {
             // TODO: merge with the other headers and have some better 
defaults, unify with lightweight headers
-            method.addHeader( "Cache-control", "no-cache" );
+            method.addHeader(  "Cache-control", "no-cache" );
             method.addHeader( "Cache-store", "no-store" );
             method.addHeader( "Pragma", "no-cache" );
             method.addHeader( "Expires", "0" );
@@ -868,6 +868,16 @@ public abstract class AbstractHttpClientWagon
                 method.setHeader( header );
             }
         }
+
+        Header userAgentHeader = method.getFirstHeader( HTTP.USER_AGENT );
+        if ( userAgentHeader == null )
+        {
+            String userAgent = getUserAgent( method );
+            if ( userAgent != null )
+            {
+                method.setHeader( HTTP.USER_AGENT, userAgent );
+            }
+        }
     }
 
     protected String getUserAgent( HttpUriRequest method )

http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/578478e4/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
----------------------------------------------------------------------
diff --git 
a/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
 
b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
index aed4fc3..0d91ad6 100644
--- 
a/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
+++ 
b/wagon-providers/wagon-webdav-jackrabbit/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
@@ -22,6 +22,7 @@ package org.apache.maven.wagon.providers.webdav;
 import org.apache.http.HttpException;
 import org.apache.http.HttpStatus;
 import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.jackrabbit.webdav.DavConstants;
 import org.apache.jackrabbit.webdav.DavException;
 import org.apache.jackrabbit.webdav.MultiStatus;
@@ -45,9 +46,11 @@ import org.w3c.dom.Node;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Properties;
 
 /**
  * <p>WebDavWagon</p>
@@ -95,6 +98,37 @@ public class WebDavWagon
         return true;
     }
 
+    private static final String DEFAULT_USER_AGENT = getDefaultUserAgent();
+
+    private static String getDefaultUserAgent()
+    {
+        Properties props = new Properties();
+
+        try (InputStream is = 
AbstractHttpClientWagon.class.getResourceAsStream(
+            
"/META-INF/maven/org.apache.maven.wagon/wagon-webdav-jackrabbit/pom.properties" 
);)
+        {
+            props.load( is );
+            is.close();
+        }
+        catch ( IOException ignore )
+        {
+            // ignore
+        }
+
+        String ver = props.getProperty( "version", "unknown-version" );
+        return "Apache-Maven-Wagon/" + ver + " (Java " + System.getProperty( 
"java.version" ) + "; ";
+    }
+
+    @Override
+    protected String getUserAgent( HttpUriRequest method )
+    {
+        String userAgent = super.getUserAgent( method );
+        if (userAgent == null)
+        {
+            return DEFAULT_USER_AGENT;
+        }
+    }
+
     /**
      * Create directories in server as needed.
      * They are created one at a time until the whole path exists.
@@ -150,12 +184,10 @@ public class WebDavWagon
     private int doMkCol( String url )
         throws IOException
     {
-        HttpMkcol method = null;
-        CloseableHttpResponse closeableHttpResponse = null;
-        try
+        HttpMkcol method = new HttpMkcol( url );
+        try (CloseableHttpResponse closeableHttpResponse = execute( method ))
         {
-            method = new HttpMkcol( url );
-            closeableHttpResponse = execute( method );
+
             return closeableHttpResponse.getStatusLine().getStatusCode();
         }
         catch ( HttpException e )
@@ -168,10 +200,6 @@ public class WebDavWagon
             {
                 method.releaseConnection();
             }
-            if ( closeableHttpResponse != null )
-            {
-                closeableHttpResponse.close();
-            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/578478e4/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/HttpClientWagonTest.java
----------------------------------------------------------------------
diff --git 
a/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/HttpClientWagonTest.java
 
b/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/HttpClientWagonTest.java
index 4ea430f..1afab1f 100644
--- 
a/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/HttpClientWagonTest.java
+++ 
b/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/HttpClientWagonTest.java
@@ -235,7 +235,7 @@ public class HttpClientWagonTest
     }
 
     private static final class TestWagon
-        extends AbstractHttpClientWagon
+        extends WebDavWagon
     {
         @Override
         public void fillOutputData( OutputData outputData )

Reply via email to