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 2016/05/01 12:56:25 UTC
[23/50] [abbrv] maven-aether git commit: Bug 442576 - Allow to
disable WebDav support
Bug 442576 - Allow to disable WebDav support
Automatically disabled WebDAV mode when detecting a repository manager
Project: http://git-wip-us.apache.org/repos/asf/maven-aether/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-aether/commit/9440b371
Tree: http://git-wip-us.apache.org/repos/asf/maven-aether/tree/9440b371
Diff: http://git-wip-us.apache.org/repos/asf/maven-aether/diff/9440b371
Branch: refs/heads/master
Commit: 9440b371a669b8c0d21ba235858a792b83ca22ce
Parents: cd3cb86
Author: Benjamin Bentmann <be...@sonatype.com>
Authored: Sat Aug 30 21:50:53 2014 +0200
Committer: Benjamin Bentmann <be...@sonatype.com>
Committed: Sat Aug 30 21:50:53 2014 +0200
----------------------------------------------------------------------
.../aether/transport/http/HttpTransporter.java | 10 +++++-
.../transport/http/HttpTransporterTest.java | 34 ++++++++++++++++++++
2 files changed, 43 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/9440b371/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
----------------------------------------------------------------------
diff --git a/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java b/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
index a801373..5ac9b8f 100644
--- a/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
+++ b/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
@@ -338,7 +338,15 @@ final class HttpTransporter
private boolean isWebDav( HttpResponse response )
{
- return response.containsHeader( HttpHeaders.DAV );
+ return response.containsHeader( HttpHeaders.DAV ) && !isWebDavOptional( response );
+ }
+
+ private boolean isWebDavOptional( HttpResponse response )
+ {
+ Header header = response.getFirstHeader( HttpHeaders.SERVER );
+ String server = ( header != null ) ? header.getValue() : null;
+ // repository managers don't need webdav mode and work fine with straight puts
+ return server != null && ( server.startsWith( "Artifactory/" ) || server.startsWith( "Nexus/" ) );
}
private void mkdirs( URI uri, SharingHttpContext context )
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/9440b371/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
----------------------------------------------------------------------
diff --git a/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java b/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
index 14ec31e..0ebe893 100644
--- a/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
+++ b/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
@@ -851,6 +851,40 @@ public class HttpTransporterTest
}
@Test
+ public void testPut_WebDavOptional_AutomaticallyDisabled_Artifactory()
+ throws Exception
+ {
+ testPut_WebDavOptional_AutomaticallyDisabled( "Artifactory/3.3.0" );
+ }
+
+ @Test
+ public void testPut_WebDavOptional_AutomaticallyDisabled_Nexus()
+ throws Exception
+ {
+ testPut_WebDavOptional_AutomaticallyDisabled( "Nexus/2.9.0-02" );
+ }
+
+ private void testPut_WebDavOptional_AutomaticallyDisabled( String server )
+ throws Exception
+ {
+ httpServer.setServer( server );
+ httpServer.setWebDav( HttpServer.WebDav.OPTIONAL );
+ RecordingTransportListener listener = new RecordingTransportListener();
+ PutTask task =
+ new PutTask( URI.create( "repo/dir1/dir2/file.txt" ) ).setListener( listener ).setDataString( "upload" );
+ transporter.put( task );
+ assertEquals( 0, listener.dataOffset );
+ assertEquals( 6, listener.dataLength );
+ assertEquals( 1, listener.startedCount );
+ assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
+ assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "dir1/dir2/file.txt" ) ) );
+
+ assertEquals( httpServer.getLogEntries().toString(), 2, httpServer.getLogEntries().size() );
+ assertEquals( "OPTIONS", httpServer.getLogEntries().get( 0 ).method );
+ assertEquals( "PUT", httpServer.getLogEntries().get( 1 ).method );
+ }
+
+ @Test
public void testPut_FileHandleLeak()
throws Exception
{