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()
