You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2017/07/04 12:12:45 UTC
[4/5] maven-wagon git commit: preemptive for webdav MKCOL
preemptive for webdav MKCOL
Signed-off-by: olivier lamy <ol...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/maven-wagon/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-wagon/commit/0835a84a
Tree: http://git-wip-us.apache.org/repos/asf/maven-wagon/tree/0835a84a
Diff: http://git-wip-us.apache.org/repos/asf/maven-wagon/diff/0835a84a
Branch: refs/heads/feature/webdav_upgrade
Commit: 0835a84aaca63090d3cf09c126ac6157174b6406
Parents: 49570bf
Author: olivier lamy <ol...@apache.org>
Authored: Tue Jul 4 17:14:54 2017 +1000
Committer: olivier lamy <ol...@apache.org>
Committed: Tue Jul 4 17:14:54 2017 +1000
----------------------------------------------------------------------
pom.xml | 8 ++++++
.../maven/wagon/http/HttpWagonTestCase.java | 24 ++++++----------
.../shared/http/AbstractHttpClientWagon.java | 10 +++++++
.../wagon/providers/webdav/WebDavWagon.java | 19 ++++++++++---
.../wagon/providers/webdav/WebDavWagonTest.java | 30 +++++++++++++++-----
5 files changed, 64 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/0835a84a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b3f5cd1..2536df6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -387,6 +387,14 @@ under the License.
</lifecycleMappingMetadata>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <failsOnError>false</failsOnError>
+ <failOnViolation>false</failOnViolation>
+ </configuration>
+ </plugin>
</plugins>
</pluginManagement>
<plugins>
http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/0835a84a/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
----------------------------------------------------------------------
diff --git a/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java b/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
index c19eaa3..d7587f0 100644
--- a/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
+++ b/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
@@ -44,11 +44,11 @@ import org.eclipse.jetty.server.Response;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
-import org.eclipse.jetty.util.security.Constraint;
-import org.eclipse.jetty.util.security.Password;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -698,9 +698,7 @@ public abstract class HttpWagonTestCase
File tmpResult = File.createTempFile( "foo", "get" );
- FileOutputStream fileOutputStream = new FileOutputStream( tmpResult );
-
- try
+ try ( FileOutputStream fileOutputStream = new FileOutputStream( tmpResult ) )
{
wagon.getToStream( "resource", fileOutputStream );
fileOutputStream.flush();
@@ -843,8 +841,7 @@ public abstract class HttpWagonTestCase
String content = "put top secret";
FileUtils.fileWrite( tempFile.getAbsolutePath(), content );
- FileInputStream fileInputStream = new FileInputStream( tempFile );
- try
+ try ( FileInputStream fileInputStream = new FileInputStream( tempFile ) )
{
wagon.putFromStream( fileInputStream, "test-secured-put-resource", content.length(), -1 );
assertEquals( content, FileUtils.fileRead( sourceFile.getAbsolutePath() ) );
@@ -854,7 +851,6 @@ public abstract class HttpWagonTestCase
finally
{
wagon.disconnect();
- fileInputStream.close();
tempFile.delete();
}
@@ -915,8 +911,7 @@ public abstract class HttpWagonTestCase
String content = "put top secret";
FileUtils.fileWrite( tempFile.getAbsolutePath(), content );
- FileInputStream fileInputStream = new FileInputStream( tempFile );
- try
+ try (FileInputStream fileInputStream = new FileInputStream( tempFile ))
{
wagon.putFromStream( fileInputStream, "test-secured-put-resource", content.length(), -1 );
assertEquals( content, FileUtils.fileRead( sourceFile.getAbsolutePath() ) );
@@ -926,7 +921,6 @@ public abstract class HttpWagonTestCase
finally
{
wagon.disconnect();
- fileInputStream.close();
tempFile.delete();
}
@@ -1141,7 +1135,7 @@ public abstract class HttpWagonTestCase
PutHandler putHandler = new PutHandler( this.repositoryDirectory );
putHandler.handle( target, baseRequest, request, response );
handlerRequestResponses.add(
- new HandlerRequestResponse( request.getMethod(), ( (Response) response ).getStatus(),
+ new HandlerRequestResponse( request.getMethod(), response.getStatus(),
request.getRequestURI() ) );
return;
}
@@ -1150,7 +1144,7 @@ public abstract class HttpWagonTestCase
baseRequest.setHandled( true );
handlerRequestResponses.add(
- new HandlerRequestResponse( request.getMethod(), ( (Response) response ).getStatus(),
+ new HandlerRequestResponse( request.getMethod(), response.getStatus(),
request.getRequestURI() ) );
}
@@ -1865,14 +1859,12 @@ public abstract class HttpWagonTestCase
String content = "put top secret";
FileUtils.fileWrite( tempFile.getAbsolutePath(), content );
- FileInputStream fileInputStream = new FileInputStream( tempFile );
- try
+ try(FileInputStream fileInputStream = new FileInputStream( tempFile ))
{
wagon.putFromStream( fileInputStream, "test-secured-put-resource", content.length(), -1 );
}
finally
{
- fileInputStream.close();
tempFile.delete();
}
http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/0835a84a/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 eba6169..db34732 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
@@ -1145,6 +1145,16 @@ public abstract class AbstractHttpClientWagon
throw new IllegalStateException( "this wagon http client must not use fillOutputData" );
}
+ protected CredentialsProvider getCredentialsProvider()
+ {
+ return credentialsProvider;
+ }
+
+ protected AuthCache getAuthCache()
+ {
+ return authCache;
+ }
+
public int getInitialBackoffSeconds()
{
return initialBackoffSeconds;
http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/0835a84a/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 ad1fa71..71648f6 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
@@ -20,9 +20,12 @@ package org.apache.maven.wagon.providers.webdav;
*/
import org.apache.http.HttpException;
+import org.apache.http.HttpHost;
import org.apache.http.HttpStatus;
+import org.apache.http.auth.AuthScope;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.impl.auth.BasicScheme;
import org.apache.jackrabbit.webdav.DavConstants;
import org.apache.jackrabbit.webdav.DavException;
import org.apache.jackrabbit.webdav.MultiStatus;
@@ -104,8 +107,8 @@ public class WebDavWagon
{
Properties props = new Properties();
- try (InputStream is = AbstractHttpClientWagon.class.getResourceAsStream(
- "/META-INF/maven/org.apache.maven.wagon/wagon-webdav-jackrabbit/pom.properties" );)
+ try ( InputStream is = AbstractHttpClientWagon.class.getResourceAsStream(
+ "/META-INF/maven/org.apache.maven.wagon/wagon-webdav-jackrabbit/pom.properties" ) )
{
props.load( is );
is.close();
@@ -185,10 +188,18 @@ public class WebDavWagon
private int doMkCol( String url )
throws IOException
{
+ Repository repo = getRepository();
+ HttpHost targetHost = new HttpHost( repo.getHost(), repo.getPort(), repo.getProtocol() );
+ AuthScope targetScope = getBasicAuthScope().getScope( targetHost );
+
+ if ( getCredentialsProvider().getCredentials( targetScope ) != null )
+ {
+ BasicScheme targetAuth = new BasicScheme();
+ getAuthCache().put( targetHost, targetAuth );
+ }
HttpMkcol method = new HttpMkcol( url );
- try (CloseableHttpResponse closeableHttpResponse = execute( method ))
+ try ( CloseableHttpResponse closeableHttpResponse = execute( method ) )
{
-
return closeableHttpResponse.getStatusLine().getStatusCode();
}
catch ( HttpException e )
http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/0835a84a/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
----------------------------------------------------------------------
diff --git a/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java b/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
index bb646b8..e432970 100644
--- a/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
+++ b/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
@@ -17,7 +17,9 @@ package org.apache.maven.wagon.providers.webdav;
import it.could.webdav.DAVServlet;
import org.apache.http.HttpException;
+import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.client.methods.HttpUriRequest;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.StreamingWagon;
import org.apache.maven.wagon.TransferFailedException;
@@ -25,6 +27,8 @@ import org.apache.maven.wagon.Wagon;
import org.apache.maven.wagon.http.HttpWagonTestCase;
import org.apache.maven.wagon.repository.Repository;
import org.apache.maven.wagon.resource.Resource;
+import org.apache.maven.wagon.shared.http.HttpConfiguration;
+import org.apache.maven.wagon.shared.http.HttpMethodConfiguration;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
@@ -47,6 +51,18 @@ import javax.servlet.http.HttpServletResponse;
public class WebDavWagonTest
extends HttpWagonTestCase
{
+
+ @Override
+ protected Wagon getWagon()
+ throws Exception
+ {
+ WebDavWagon wagon = (WebDavWagon) super.getWagon();
+ wagon.setHttpConfiguration(
+ new HttpConfiguration() //
+ .setPut( new HttpMethodConfiguration().setUsePreemptive( true ) ));
+ return wagon;
+ }
+
protected String getTestRepositoryUrl()
throws IOException
{
@@ -356,7 +372,7 @@ public class WebDavWagonTest
{
private static final String TIMEOUT_TRIGGER = "timeout";
- protected int execute( HttpRequestBase httpRequestBase )
+ protected CloseableHttpResponse execute( HttpUriRequest httpRequestBase )
throws HttpException, IOException
{
if ( httpRequestBase.getURI().getPath().contains( TIMEOUT_TRIGGER ) )
@@ -365,7 +381,7 @@ public class WebDavWagonTest
}
else
{
- return super.execute( httpRequestBase ).getStatusLine().getStatusCode();
+ return super.execute( httpRequestBase );
}
}
}
@@ -416,7 +432,7 @@ public class WebDavWagonTest
@Override
protected boolean supportProxyPreemptiveAuthentication()
{
- return false;
+ return true;
}
protected void testPreemptiveAuthenticationGet( TestSecurityHandler sh, boolean preemptive )
@@ -497,14 +513,14 @@ public class WebDavWagonTest
{
assertEquals( "found:" + putHandler.handlerRequestResponses, 0, putHandler.handlerRequestResponses.size() );
- assertEquals( "found:" + redirectHandler.handlerRequestResponses, 4,
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, 6,
redirectHandler.handlerRequestResponses.size() );
assertEquals( "found:" + redirectHandler.handlerRequestResponses, HttpServletResponse.SC_SEE_OTHER,
redirectHandler.handlerRequestResponses.get( 0 ).responseCode );
- assertEquals( "found:" + redirectHandler.handlerRequestResponses, HttpServletResponse.SC_SEE_OTHER,
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, HttpServletResponse.SC_OK,
redirectHandler.handlerRequestResponses.get( 1 ).responseCode );
- assertEquals( "found:" + redirectHandler.handlerRequestResponses, HttpServletResponse.SC_CREATED,
- redirectHandler.handlerRequestResponses.get( 3 ).responseCode );
+ assertEquals( "found:" + redirectHandler.handlerRequestResponses, HttpServletResponse.SC_SEE_OTHER,
+ redirectHandler.handlerRequestResponses.get( 2 ).responseCode );
}