Repository: maven-wagon
Updated Branches:
  refs/heads/master 6543c88c0 -> 422ca5a54


[WAGON-230] make it easier to set the HTTP user agent in a configurable way 
across HTTP wagons, and provide a default for Wagon
Based on WAGON-401


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

Branch: refs/heads/master
Commit: 1fa1f42e5c5fefd6128cadc2c11d2fad36d246a6
Parents: 6543c88
Author: Robert Scholte <[email protected]>
Authored: Sun Jan 25 22:35:59 2015 +0100
Committer: Robert Scholte <[email protected]>
Committed: Sun Jan 25 22:35:59 2015 +0100

----------------------------------------------------------------------
 .../webdav/AbstractHttpClientWagon.java         | 29 ++++++++++++++++++++
 .../providers/webdav/HttpClientWagonTest.java   |  5 ++++
 2 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/1fa1f42e/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 35d1258..9784e14 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
@@ -54,6 +54,7 @@ import org.apache.maven.wagon.proxy.ProxyInfo;
 import org.apache.maven.wagon.repository.Repository;
 import org.apache.maven.wagon.resource.Resource;
 import org.apache.maven.wagon.shared.http.EncodingUtil;
+import org.codehaus.plexus.util.IOUtil;
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
@@ -540,6 +541,7 @@ public abstract class AbstractHttpClientWagon
             method.addRequestHeader( "Pragma", "no-cache" );
             method.addRequestHeader( "Expires", "0" );
             method.addRequestHeader( "Accept-Encoding", "gzip" );
+            method.addRequestHeader( "User-Agent", DEFAULT_USER_AGENT );
         }
 
         if ( httpHeaders != null )
@@ -559,6 +561,33 @@ public abstract class AbstractHttpClientWagon
             }
         }
     }
+    
+    private static String DEFAULT_USER_AGENT = getDefaultUserAgent();
+
+    private static String getDefaultUserAgent()
+    {
+        Properties props = new Properties();
+
+        InputStream is = AbstractHttpClientWagon.class.getResourceAsStream(
+            "/META-INF/maven/org.apache.maven.wagon/wagon-http/pom.properties" 
);
+        if ( is != null )
+        {
+            try
+            {
+                props.load( is );
+            }
+            catch ( IOException ignore )
+            {
+            }
+            finally
+            {
+                IOUtil.close( is );
+            }
+        }
+
+        String ver = props.getProperty( "version", "unknown-version" );
+        return "Apache-Maven-Wagon/" + ver + " (Java " + System.getProperty( 
"java.version" ) + "; ";
+    }
 
     /**
      * getUrl

http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/1fa1f42e/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 2be024c..652a7ec 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
@@ -115,6 +115,11 @@ public class HttpClientWagonTest
         header = method.getRequestHeader( "Accept-Encoding" );
         assertNotNull( header );
         assertEquals( "gzip", header.getValue() );
+
+        header = method.getRequestHeader( "User-Agent" );
+        assertNotNull( header );
+        // during test-phase 
/META-INF/maven/org.apache.maven.wagon/*/pom.properties hasn't been created yet
+        assertTrue( header.getValue().startsWith( 
"Apache-Maven-Wagon/unknown-version (Java " ) );
     }
 
     public void testTurnOffDefaultHeaders()

Reply via email to