Author: olamy
Date: Mon Sep 19 22:52:43 2011
New Revision: 1172878
URL: http://svn.apache.org/viewvc?rev=1172878&view=rev
Log:
[WAGON-349] add a unit to ensure file are not uploaded twice with wagon-http.
fix implementation of preemptive for wagon based on asf httpclient.
Modified:
maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
Modified:
maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
URL:
http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java?rev=1172878&r1=1172877&r2=1172878&view=diff
==============================================================================
---
maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
(original)
+++
maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
Mon Sep 19 22:52:43 2011
@@ -126,6 +126,7 @@ public class LightweightHttpWagon
URL url = new URL( visitingUrl );
HttpURLConnection urlConnection = (HttpURLConnection)
url.openConnection( this.proxy );
+
urlConnection.setRequestProperty( "Accept-Encoding", "gzip" );
if ( !useCache )
{
Modified:
maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
URL:
http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java?rev=1172878&r1=1172877&r2=1172878&view=diff
==============================================================================
---
maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
(original)
+++
maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
Mon Sep 19 22:52:43 2011
@@ -29,18 +29,22 @@ import org.apache.http.auth.AuthScope;
import org.apache.http.auth.Credentials;
import org.apache.http.auth.NTCredentials;
import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.AuthCache;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.params.ClientPNames;
import org.apache.http.client.params.CookiePolicy;
+import org.apache.http.client.protocol.ClientContext;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.BrowserCompatHostnameVerifier;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.conn.ssl.X509HostnameVerifier;
+import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.SingleClientConnManager;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
@@ -50,6 +54,7 @@ import org.apache.http.message.BasicHead
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.params.HttpParams;
+import org.apache.http.protocol.BasicHttpContext;
import org.apache.maven.wagon.InputData;
import org.apache.maven.wagon.OutputData;
import org.apache.maven.wagon.PathUtils;
@@ -91,6 +96,8 @@ import java.util.zip.GZIPInputStream;
public abstract class AbstractHttpClientWagon
extends StreamWagon
{
+
+ private BasicHttpContext localContext;
private final class RequestEntityImplementation
implements HttpEntity
{
@@ -400,6 +407,15 @@ public abstract class AbstractHttpClient
int port = getRepository().getPort() > -1 ?
getRepository().getPort() : AuthScope.ANY_PORT;
client.getCredentialsProvider().setCredentials( new AuthScope(
host, port ), creds );
+
+
+ AuthCache authCache = new BasicAuthCache();
+ BasicScheme basicAuth = new BasicScheme();
+ HttpHost targetHost = new HttpHost( repository.getHost(),
repository.getPort(), repository.getProtocol() );
+ authCache.put( targetHost, basicAuth );
+
+ localContext = new BasicHttpContext();
+ localContext.setAttribute( ClientContext.AUTH_CACHE, authCache );
}
ProxyInfo proxyInfo = getProxyInfo( getRepository().getProtocol(),
getRepository().getHost() );
@@ -646,7 +662,7 @@ public abstract class AbstractHttpClient
setHeaders( httpMethod );
client.getParams().setParameter( CoreProtocolPNames.USER_AGENT,
getUserAgent( httpMethod ) );
- return client.execute( httpMethod );
+ return client.execute( httpMethod, localContext );
}
protected void setParameters( HttpUriRequest method )
Modified:
maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
URL:
http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java?rev=1172878&r1=1172877&r2=1172878&view=diff
==============================================================================
---
maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
(original)
+++
maven/wagon/trunk/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
Mon Sep 19 22:52:43 2011
@@ -301,4 +301,31 @@ public class WebDavWagonTest
tearDownWagonTestingFixtures();
}
+
+ @Override
+ protected boolean supportPreemptiveAuthentication()
+ {
+ return false;
+ }
+
+ protected void testPreemptiveAuthentication( TestSecurityHandler sh )
+ {
+
+ if ( supportPreemptiveAuthentication() )
+ {
+ assertEquals( "not 2 security handler use " +
sh.securityHandlerRequestReponses, 2,
+ sh.securityHandlerRequestReponses.size() );
+ assertEquals( 200, sh.securityHandlerRequestReponses.get( 0
).responseCode );
+ }
+ else
+ {
+ assertEquals( "not 4 security handler use " +
sh.securityHandlerRequestReponses, 4,
+ sh.securityHandlerRequestReponses.size() );
+ assertEquals( 401, sh.securityHandlerRequestReponses.get( 0
).responseCode );
+ assertEquals( 200, sh.securityHandlerRequestReponses.get( 1
).responseCode );
+ assertEquals( 401, sh.securityHandlerRequestReponses.get( 2
).responseCode );
+ assertEquals( 200, sh.securityHandlerRequestReponses.get( 3
).responseCode );
+
+ }
+ }
}