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 );
 
     }