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 )
