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 2011/10/06 13:13:09 UTC

svn commit: r1179571 - in /maven/wagon/trunk: wagon-provider-api/src/main/java/org/apache/maven/wagon/ wagon-provider-test/src/main/java/org/apache/maven/wagon/http/ wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/ wa...

Author: olamy
Date: Thu Oct  6 11:13:09 2011
New Revision: 1179571

URL: http://svn.apache.org/viewvc?rev=1179571&view=rev
Log:
[WAGON-353] StreamWagon.putFromStream() fails with IllegalStateException
Add support for webdav too.

Added:
    maven/wagon/trunk/wagon-providers/wagon-http/src/test/resources/log4j.xml   (with props)
Modified:
    maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java
    maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
    maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
    maven/wagon/trunk/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.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-http-shared4/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.java

Modified: maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java?rev=1179571&r1=1179570&r2=1179571&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java (original)
+++ maven/wagon/trunk/wagon-provider-api/src/main/java/org/apache/maven/wagon/StreamWagon.java Thu Oct  6 11:13:09 2011
@@ -266,7 +266,7 @@ public abstract class StreamWagon
         putFromStream( stream, resource );
     }
 
-    private void putFromStream( InputStream stream, Resource resource )
+    protected void putFromStream( InputStream stream, Resource resource )
         throws TransferFailedException, AuthorizationException, ResourceDoesNotExistException
     {
         OutputStream os = getOutputStream( resource );

Modified: maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java?rev=1179571&r1=1179570&r2=1179571&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java (original)
+++ maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java Thu Oct  6 11:13:09 2011
@@ -53,6 +53,7 @@ import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -75,20 +76,20 @@ public abstract class HttpWagonTestCase
 {
     private Server server;
 
-    protected void setupWagonTestingFixtures()
+    protected void setupWagonTestingFixtures( )
         throws Exception
     {
         // File round trip testing
 
         File file = FileTestUtils.createUniqueFile( "local-repository", "test-resource" );
 
-        file.delete();
+        file.delete( );
 
-        file.getParentFile().mkdirs();
+        file.getParentFile( ).mkdirs( );
 
-        File repositoryDirectory = getRepositoryDirectory();
+        File repositoryDirectory = getRepositoryDirectory( );
         FileUtils.deleteDirectory( repositoryDirectory );
-        repositoryDirectory.mkdirs();
+        repositoryDirectory.mkdirs( );
 
         server = new Server( 0 );
 
@@ -99,72 +100,72 @@ public abstract class HttpWagonTestCase
 
         addConnectors( server );
 
-        server.start();
+        server.start( );
 
-        testRepository.setUrl( getTestRepositoryUrl() );
+        testRepository.setUrl( getTestRepositoryUrl( ) );
     }
 
     @Override
-    protected final int getTestRepositoryPort()
+    protected final int getTestRepositoryPort( )
     {
         if ( server == null )
         {
             return 0;
         }
-        return server.getConnectors()[0].getLocalPort();
+        return server.getConnectors( )[0].getLocalPort( );
     }
 
     protected void createContext( Server server, File repositoryDirectory )
         throws IOException
     {
         Context root = new Context( server, "/", Context.SESSIONS );
-        root.setResourceBase( repositoryDirectory.getAbsolutePath() );
-        ServletHolder servletHolder = new ServletHolder( new DefaultServlet() );
+        root.setResourceBase( repositoryDirectory.getAbsolutePath( ) );
+        ServletHolder servletHolder = new ServletHolder( new DefaultServlet( ) );
         root.addServlet( servletHolder, "/*" );
     }
 
-    protected void tearDownWagonTestingFixtures()
+    protected void tearDownWagonTestingFixtures( )
         throws Exception
     {
-        server.stop();
+        server.stop( );
     }
 
-    public void testWagonGetFileList()
+    public void testWagonGetFileList( )
         throws Exception
     {
-        File dir = getRepositoryDirectory();
+        File dir = getRepositoryDirectory( );
         FileUtils.deleteDirectory( dir );
 
         File f = new File( dir, "file-list" );
-        f.mkdirs();
+        f.mkdirs( );
 
-        super.testWagonGetFileList();
+        super.testWagonGetFileList( );
     }
 
-    public void testHttpHeaders()
+    public void testHttpHeaders( )
         throws Exception
     {
-        Properties properties = new Properties();
+        Properties properties = new Properties( );
         properties.setProperty( "User-Agent", "Maven-Wagon/1.0" );
 
-        StreamingWagon wagon = (StreamingWagon) getWagon();
+        StreamingWagon wagon = (StreamingWagon) getWagon( );
 
         setHttpHeaders( wagon, properties );
 
         Server server = new Server( 0 );
-        TestHeaderHandler handler = new TestHeaderHandler();
+        TestHeaderHandler handler = new TestHeaderHandler( );
         server.setHandler( handler );
         addConnectors( server );
-        server.start();
+        server.start( );
 
         wagon.connect(
-            new Repository( "id", getProtocol() + "://localhost:" + server.getConnectors()[0].getLocalPort() ) );
+            new Repository( "id", getProtocol( ) + "://localhost:" + server.getConnectors( )[0].getLocalPort( ) ) );
 
-        wagon.getToStream( "resource", new StringOutputStream() );
+        wagon.getToStream( "resource", new StringOutputStream( ) );
 
-        wagon.disconnect();
+        wagon.disconnect( );
 
-        server.stop();
+        server.stop( );
 
         assertEquals( "Maven-Wagon/1.0", handler.headers.get( "User-Agent" ) );
     }
@@ -172,31 +173,31 @@ public abstract class HttpWagonTestCase
     /**
      * test set of User-Agent as it's done by aether wagon connector with using setHttpHeaders
      */
-    public void testHttpHeadersWithCommonMethods()
+    public void testHttpHeadersWithCommonMethods( )
         throws Exception
     {
-        Properties properties = new Properties();
+        Properties properties = new Properties( );
         properties.setProperty( "User-Agent", "Maven-Wagon/1.0" );
 
-        StreamingWagon wagon = (StreamingWagon) getWagon();
+        StreamingWagon wagon = (StreamingWagon) getWagon( );
 
-        Method setHttpHeaders = wagon.getClass().getMethod( "setHttpHeaders", Properties.class );
+        Method setHttpHeaders = wagon.getClass( ).getMethod( "setHttpHeaders", Properties.class );
         setHttpHeaders.invoke( wagon, properties );
 
         Server server = new Server( 0 );
-        TestHeaderHandler handler = new TestHeaderHandler();
+        TestHeaderHandler handler = new TestHeaderHandler( );
         server.setHandler( handler );
         addConnectors( server );
-        server.start();
+        server.start( );
 
         wagon.connect(
-            new Repository( "id", getProtocol() + "://localhost:" + server.getConnectors()[0].getLocalPort() ) );
+            new Repository( "id", getProtocol( ) + "://localhost:" + server.getConnectors( )[0].getLocalPort( ) ) );
 
-        wagon.getToStream( "resource", new StringOutputStream() );
+        wagon.getToStream( "resource", new StringOutputStream( ) );
 
-        wagon.disconnect();
+        wagon.disconnect( );
 
-        server.stop();
+        server.stop( );
 
         assertEquals( "Maven-Wagon/1.0", handler.headers.get( "User-Agent" ) );
     }
@@ -209,17 +210,17 @@ public abstract class HttpWagonTestCase
 
     protected String getRepositoryUrl( Server server )
     {
-        int localPort = server.getConnectors()[0].getLocalPort();
-        return getProtocol() + "://localhost:" + localPort;
+        int localPort = server.getConnectors( )[0].getLocalPort( );
+        return getProtocol( ) + "://localhost:" + localPort;
     }
 
-    public void testGetForbidden()
+    public void testGetForbidden( )
         throws Exception
     {
         try
         {
             runTestGet( HttpServletResponse.SC_FORBIDDEN );
-            fail();
+            fail( );
         }
         catch ( AuthorizationException e )
         {
@@ -227,13 +228,13 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testGet404()
+    public void testGet404( )
         throws Exception
     {
         try
         {
             runTestGet( HttpServletResponse.SC_NOT_FOUND );
-            fail();
+            fail( );
         }
         catch ( ResourceDoesNotExistException e )
         {
@@ -241,13 +242,13 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testGet500()
+    public void testGet500( )
         throws Exception
     {
         try
         {
             runTestGet( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
-            fail();
+            fail( );
         }
         catch ( TransferFailedException e )
         {
@@ -258,37 +259,37 @@ public abstract class HttpWagonTestCase
     private void runTestGet( int status )
         throws Exception
     {
-        StreamingWagon wagon = (StreamingWagon) getWagon();
+        StreamingWagon wagon = (StreamingWagon) getWagon( );
 
         Server server = new Server( 0 );
-        StatusHandler handler = new StatusHandler();
+        StatusHandler handler = new StatusHandler( );
         handler.setStatusToReturn( status );
         server.setHandler( handler );
         addConnectors( server );
-        server.start();
+        server.start( );
 
         wagon.connect( new Repository( "id", getRepositoryUrl( server ) ) );
 
         try
         {
-            wagon.getToStream( "resource", new StringOutputStream() );
-            fail();
+            wagon.getToStream( "resource", new StringOutputStream( ) );
+            fail( );
         }
         finally
         {
-            wagon.disconnect();
+            wagon.disconnect( );
 
-            server.stop();
+            server.stop( );
         }
     }
 
-    public void testResourceExistsForbidden()
+    public void testResourceExistsForbidden( )
         throws Exception
     {
         try
         {
             runTestResourceExists( HttpServletResponse.SC_FORBIDDEN );
-            fail();
+            fail( );
         }
         catch ( AuthorizationException e )
         {
@@ -296,7 +297,7 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testResourceExists404()
+    public void testResourceExists404( )
         throws Exception
     {
         try
@@ -309,13 +310,13 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testResourceExists500()
+    public void testResourceExists500( )
         throws Exception
     {
         try
         {
             runTestResourceExists( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
-            fail();
+            fail( );
         }
         catch ( TransferFailedException e )
         {
@@ -326,14 +327,14 @@ public abstract class HttpWagonTestCase
     private boolean runTestResourceExists( int status )
         throws Exception
     {
-        StreamingWagon wagon = (StreamingWagon) getWagon();
+        StreamingWagon wagon = (StreamingWagon) getWagon( );
 
         Server server = new Server( 0 );
-        StatusHandler handler = new StatusHandler();
+        StatusHandler handler = new StatusHandler( );
         handler.setStatusToReturn( status );
         server.setHandler( handler );
         addConnectors( server );
-        server.start();
+        server.start( );
 
         wagon.connect( new Repository( "id", getRepositoryUrl( server ) ) );
 
@@ -343,59 +344,59 @@ public abstract class HttpWagonTestCase
         }
         finally
         {
-            wagon.disconnect();
+            wagon.disconnect( );
 
-            server.stop();
+            server.stop( );
         }
     }
 
     protected long getExpectedLastModifiedOnGet( Repository repository, Resource resource )
     {
-        File file = new File( getRepositoryDirectory(), resource.getName() );
-        return ( file.lastModified() / 1000 ) * 1000;
+        File file = new File( getRepositoryDirectory( ), resource.getName( ) );
+        return ( file.lastModified( ) / 1000 ) * 1000;
     }
 
-    protected File getRepositoryDirectory()
+    protected File getRepositoryDirectory( )
     {
         return getTestFile( "target/test-output/http-repository" );
     }
 
-    public void testGzipGet()
+    public void testGzipGet( )
         throws Exception
     {
-        Server server = new Server( getTestRepositoryPort() );
+        Server server = new Server( getTestRepositoryPort( ) );
 
-        String localRepositoryPath = FileTestUtils.getTestOutputDir().toString();
+        String localRepositoryPath = FileTestUtils.getTestOutputDir( ).toString( );
         Context root = new Context( server, "/", Context.SESSIONS );
         root.setResourceBase( localRepositoryPath );
-        ServletHolder servletHolder = new ServletHolder( new DefaultServlet() );
+        ServletHolder servletHolder = new ServletHolder( new DefaultServlet( ) );
         servletHolder.setInitParameter( "gzip", "true" );
         root.addServlet( servletHolder, "/*" );
         addConnectors( server );
-        server.start();
+        server.start( );
 
         try
         {
-            Wagon wagon = getWagon();
+            Wagon wagon = getWagon( );
 
             Repository testRepository = new Repository( "id", getRepositoryUrl( server ) );
 
             File sourceFile = new File( localRepositoryPath + "/gzip" );
 
-            sourceFile.deleteOnExit();
+            sourceFile.deleteOnExit( );
 
             String resName = "gzip-res.txt";
             String sourceContent = writeTestFileGzip( sourceFile, resName );
 
             wagon.connect( testRepository );
 
-            File destFile = FileTestUtils.createUniqueFile( getName(), getName() );
+            File destFile = FileTestUtils.createUniqueFile( getName( ), getName( ) );
 
-            destFile.deleteOnExit();
+            destFile.deleteOnExit( );
 
             wagon.get( "gzip/" + resName, destFile );
 
-            wagon.disconnect();
+            wagon.disconnect( );
 
             String destContent = FileUtils.fileRead( destFile );
 
@@ -403,26 +404,26 @@ public abstract class HttpWagonTestCase
         }
         finally
         {
-            server.stop();
+            server.stop( );
         }
     }
 
-    public void testProxiedRequest()
+    public void testProxiedRequest( )
         throws Exception
     {
-        ProxyInfo proxyInfo = createProxyInfo();
-        TestHeaderHandler handler = new TestHeaderHandler();
+        ProxyInfo proxyInfo = createProxyInfo( );
+        TestHeaderHandler handler = new TestHeaderHandler( );
 
         runTestProxiedRequest( proxyInfo, handler );
     }
 
-    public void testProxiedRequestWithAuthentication()
+    public void testProxiedRequestWithAuthentication( )
         throws Exception
     {
-        ProxyInfo proxyInfo = createProxyInfo();
+        ProxyInfo proxyInfo = createProxyInfo( );
         proxyInfo.setUserName( "user" );
         proxyInfo.setPassword( "secret" );
-        TestHeaderHandler handler = new AuthorizingProxyHandler();
+        TestHeaderHandler handler = new AuthorizingProxyHandler( );
 
         runTestProxiedRequest( proxyInfo, handler );
 
@@ -441,34 +442,34 @@ public abstract class HttpWagonTestCase
 
         proxyServer.setHandler( handler );
 
-        proxyServer.start();
+        proxyServer.start( );
 
-        proxyInfo.setPort( proxyServer.getConnectors()[0].getLocalPort() );
+        proxyInfo.setPort( proxyServer.getConnectors( )[0].getLocalPort( ) );
 
         System.out.println(
-            "start proxy on host/port " + proxyInfo.getHost() + "/" + proxyInfo.getPort() + " with non proxyHosts "
-                + proxyInfo.getNonProxyHosts() );
+            "start proxy on host/port " + proxyInfo.getHost( ) + "/" + proxyInfo.getPort( ) + " with non proxyHosts "
+                + proxyInfo.getNonProxyHosts( ) );
 
-        while ( !proxyServer.isRunning() || !proxyServer.isStarted() )
+        while ( !proxyServer.isRunning( ) || !proxyServer.isStarted( ) )
         {
             Thread.sleep( 10 );
         }
 
         try
         {
-            StreamingWagon wagon = (StreamingWagon) getWagon();
+            StreamingWagon wagon = (StreamingWagon) getWagon( );
 
-            System.out.println( " wagon hashCode " + wagon.hashCode() );
+            System.out.println( " wagon hashCode " + wagon.hashCode( ) );
 
             Repository testRepository = new Repository( "id", "http://www.example.com/" );
 
-            String localRepositoryPath = FileTestUtils.getTestOutputDir().toString();
+            String localRepositoryPath = FileTestUtils.getTestOutputDir( ).toString( );
             File sourceFile = new File( localRepositoryPath, "test-proxied-resource" );
-            FileUtils.fileWrite( sourceFile.getAbsolutePath(), "content" );
+            FileUtils.fileWrite( sourceFile.getAbsolutePath( ), "content" );
 
             wagon.connect( testRepository, proxyInfo );
 
-            StringOutputStream out = new StringOutputStream();
+            StringOutputStream out = new StringOutputStream( );
             try
             {
                 wagon.getToStream( "test-proxied-resource", out );
@@ -479,31 +480,31 @@ public abstract class HttpWagonTestCase
             {
                 System.setProperty( "http.proxyHost", "" );
                 System.setProperty( "http.proxyPort", "" );
-                wagon.disconnect();
+                wagon.disconnect( );
             }
         }
         finally
         {
-            proxyServer.stop();
+            proxyServer.stop( );
         }
     }
 
-    private ProxyInfo createProxyInfo()
+    private ProxyInfo createProxyInfo( )
     {
-        ProxyInfo proxyInfo = new ProxyInfo();
+        ProxyInfo proxyInfo = new ProxyInfo( );
         proxyInfo.setHost( "localhost" );
         proxyInfo.setNonProxyHosts( null );
         proxyInfo.setType( "http" );
         return proxyInfo;
     }
 
-    public void testSecuredGetUnauthorized()
+    public void testSecuredGetUnauthorized( )
         throws Exception
     {
         try
         {
             runTestSecuredGet( null );
-            fail();
+            fail( );
         }
         catch ( AuthorizationException e )
         {
@@ -511,16 +512,16 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testSecuredGetWrongPassword()
+    public void testSecuredGetWrongPassword( )
         throws Exception
     {
         try
         {
-            AuthenticationInfo authInfo = new AuthenticationInfo();
+            AuthenticationInfo authInfo = new AuthenticationInfo( );
             authInfo.setUserName( "user" );
             authInfo.setPassword( "admin" );
             runTestSecuredGet( authInfo );
-            fail();
+            fail( );
         }
         catch ( AuthorizationException e )
         {
@@ -528,10 +529,10 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testSecuredGet()
+    public void testSecuredGet( )
         throws Exception
     {
-        AuthenticationInfo authInfo = new AuthenticationInfo();
+        AuthenticationInfo authInfo = new AuthenticationInfo( );
         authInfo.setUserName( "user" );
         authInfo.setPassword( "secret" );
         runTestSecuredGet( authInfo );
@@ -540,46 +541,46 @@ public abstract class HttpWagonTestCase
     public void runTestSecuredGet( AuthenticationInfo authInfo )
         throws Exception
     {
-        String localRepositoryPath = FileTestUtils.getTestOutputDir().toString();
+        String localRepositoryPath = FileTestUtils.getTestOutputDir( ).toString( );
         Server server = createSecurityServer( localRepositoryPath );
-        server.start();
+        server.start( );
 
         try
         {
-            StreamingWagon wagon = (StreamingWagon) getWagon();
+            StreamingWagon wagon = (StreamingWagon) getWagon( );
 
             Repository testRepository = new Repository( "id", getRepositoryUrl( server ) );
 
             File sourceFile = new File( localRepositoryPath, "test-secured-resource" );
-            FileUtils.fileWrite( sourceFile.getAbsolutePath(), "top secret" );
+            FileUtils.fileWrite( sourceFile.getAbsolutePath( ), "top secret" );
 
             wagon.connect( testRepository, authInfo );
 
-            StringOutputStream out = new StringOutputStream();
+            StringOutputStream out = new StringOutputStream( );
             try
             {
                 wagon.getToStream( "test-secured-resource", out );
             }
             finally
             {
-                wagon.disconnect();
+                wagon.disconnect( );
             }
 
-            assertEquals( "top secret", out.toString() );
+            assertEquals( "top secret", out.toString( ) );
         }
         finally
         {
-            server.stop();
+            server.stop( );
         }
     }
 
-    public void testSecuredResourceExistsUnauthorized()
+    public void testSecuredResourceExistsUnauthorized( )
         throws Exception
     {
         try
         {
             runTestSecuredResourceExists( null );
-            fail();
+            fail( );
         }
         catch ( AuthorizationException e )
         {
@@ -587,12 +588,12 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testSecuredResourceExistsWrongPassword()
+    public void testSecuredResourceExistsWrongPassword( )
         throws Exception
     {
         try
         {
-            AuthenticationInfo authInfo = new AuthenticationInfo();
+            AuthenticationInfo authInfo = new AuthenticationInfo( );
             authInfo.setUserName( "user" );
             authInfo.setPassword( "admin" );
             runTestSecuredResourceExists( authInfo );
@@ -603,10 +604,10 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testSecuredResourceExists()
+    public void testSecuredResourceExists( )
         throws Exception
     {
-        AuthenticationInfo authInfo = new AuthenticationInfo();
+        AuthenticationInfo authInfo = new AuthenticationInfo( );
         authInfo.setUserName( "user" );
         authInfo.setPassword( "secret" );
         runTestSecuredResourceExists( authInfo );
@@ -615,18 +616,18 @@ public abstract class HttpWagonTestCase
     public void runTestSecuredResourceExists( AuthenticationInfo authInfo )
         throws Exception
     {
-        String localRepositoryPath = FileTestUtils.getTestOutputDir().toString();
+        String localRepositoryPath = FileTestUtils.getTestOutputDir( ).toString( );
         Server server = createSecurityServer( localRepositoryPath );
-        server.start();
+        server.start( );
 
         try
         {
-            StreamingWagon wagon = (StreamingWagon) getWagon();
+            StreamingWagon wagon = (StreamingWagon) getWagon( );
 
             Repository testRepository = new Repository( "id", getRepositoryUrl( server ) );
 
             File sourceFile = new File( localRepositoryPath, "test-secured-resource-exists" );
-            FileUtils.fileWrite( sourceFile.getAbsolutePath(), "top secret" );
+            FileUtils.fileWrite( sourceFile.getAbsolutePath( ), "top secret" );
 
             wagon.connect( testRepository, authInfo );
 
@@ -638,12 +639,12 @@ public abstract class HttpWagonTestCase
             }
             finally
             {
-                wagon.disconnect();
+                wagon.disconnect( );
             }
         }
         finally
         {
-            server.stop();
+            server.stop( );
         }
     }
 
@@ -651,13 +652,13 @@ public abstract class HttpWagonTestCase
     {
         Server server = new Server( 0 );
 
-        SecurityHandler sh = createSecurityHandler();
+        SecurityHandler sh = createSecurityHandler( );
 
         Context root = new Context( Context.SESSIONS );
         root.setContextPath( "/" );
         root.addHandler( sh );
         root.setResourceBase( localRepositoryPath );
-        ServletHolder servletHolder = new ServletHolder( new DefaultServlet() );
+        ServletHolder servletHolder = new ServletHolder( new DefaultServlet( ) );
         root.addServlet( servletHolder, "/*" );
 
         server.setHandler( root );
@@ -670,20 +671,20 @@ public abstract class HttpWagonTestCase
         throws IOException
     {
         File file = new File( parent, child );
-        file.getParentFile().mkdirs();
-        file.deleteOnExit();
+        file.getParentFile( ).mkdirs( );
+        file.deleteOnExit( );
         OutputStream out = new FileOutputStream( file );
         try
         {
-            out.write( child.getBytes() );
+            out.write( child.getBytes( ) );
         }
         finally
         {
-            out.close();
+            out.close( );
         }
 
         file = new File( parent, child + ".gz" );
-        file.deleteOnExit();
+        file.deleteOnExit( );
         String content;
         out = new FileOutputStream( file );
         out = new GZIPOutputStream( out );
@@ -691,24 +692,24 @@ public abstract class HttpWagonTestCase
         {
             // write out different data than non-gz file, so we can
             // assert the gz version was returned
-            content = file.getAbsolutePath();
-            out.write( content.getBytes() );
+            content = file.getAbsolutePath( );
+            out.write( content.getBytes( ) );
         }
         finally
         {
-            out.close();
+            out.close( );
         }
 
         return content;
     }
 
-    public void testPutForbidden()
+    public void testPutForbidden( )
         throws Exception
     {
         try
         {
             runTestPut( HttpServletResponse.SC_FORBIDDEN );
-            fail();
+            fail( );
         }
         catch ( AuthorizationException e )
         {
@@ -716,13 +717,13 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testPut404()
+    public void testPut404( )
         throws Exception
     {
         try
         {
             runTestPut( HttpServletResponse.SC_NOT_FOUND );
-            fail();
+            fail( );
         }
         catch ( ResourceDoesNotExistException e )
         {
@@ -730,13 +731,13 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testPut500()
+    public void testPut500( )
         throws Exception
     {
         try
         {
             runTestPut( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
-            fail();
+            fail( );
         }
         catch ( TransferFailedException e )
         {
@@ -747,43 +748,43 @@ public abstract class HttpWagonTestCase
     private void runTestPut( int status )
         throws Exception
     {
-        StreamingWagon wagon = (StreamingWagon) getWagon();
+        StreamingWagon wagon = (StreamingWagon) getWagon( );
 
         Server server = new Server( 0 );
-        StatusHandler handler = new StatusHandler();
+        StatusHandler handler = new StatusHandler( );
         handler.setStatusToReturn( status );
         server.setHandler( handler );
         addConnectors( server );
-        server.start();
+        server.start( );
 
         wagon.connect( new Repository( "id", getRepositoryUrl( server ) ) );
 
         File tempFile = File.createTempFile( "wagon", "tmp" );
-        tempFile.deleteOnExit();
-        FileUtils.fileWrite( tempFile.getAbsolutePath(), "content" );
+        tempFile.deleteOnExit( );
+        FileUtils.fileWrite( tempFile.getAbsolutePath( ), "content" );
 
         try
         {
             wagon.put( tempFile, "resource" );
-            fail();
+            fail( );
         }
         finally
         {
-            wagon.disconnect();
+            wagon.disconnect( );
 
-            server.stop();
+            server.stop( );
 
-            tempFile.delete();
+            tempFile.delete( );
         }
     }
 
-    public void testSecuredPutUnauthorized()
+    public void testSecuredPutUnauthorized( )
         throws Exception
     {
         try
         {
             runTestSecuredPut( null );
-            fail();
+            fail( );
         }
         catch ( TransferFailedException e )
         {
@@ -791,16 +792,16 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testSecuredPutWrongPassword()
+    public void testSecuredPutWrongPassword( )
         throws Exception
     {
         try
         {
-            AuthenticationInfo authInfo = new AuthenticationInfo();
+            AuthenticationInfo authInfo = new AuthenticationInfo( );
             authInfo.setUserName( "user" );
             authInfo.setPassword( "admin" );
             runTestSecuredPut( authInfo );
-            fail();
+            fail( );
         }
         catch ( TransferFailedException e )
         {
@@ -808,10 +809,10 @@ public abstract class HttpWagonTestCase
         }
     }
 
-    public void testSecuredPut()
+    public void testSecuredPut( )
         throws Exception
     {
-        AuthenticationInfo authInfo = new AuthenticationInfo();
+        AuthenticationInfo authInfo = new AuthenticationInfo( );
         authInfo.setUserName( "user" );
         authInfo.setPassword( "secret" );
         runTestSecuredPut( authInfo );
@@ -826,21 +827,21 @@ public abstract class HttpWagonTestCase
     public void runTestSecuredPut( AuthenticationInfo authInfo, int putNumber )
         throws Exception
     {
-        String localRepositoryPath = FileTestUtils.getTestOutputDir().toString();
+        String localRepositoryPath = FileTestUtils.getTestOutputDir( ).toString( );
         Server server = new Server( 0 );
 
-        TestSecurityHandler sh = createSecurityHandler();
+        TestSecurityHandler sh = createSecurityHandler( );
 
         PutHandler putHandler = new PutHandler( new File( localRepositoryPath ) );
 
-        HandlerCollection handlers = new HandlerCollection();
+        HandlerCollection handlers = new HandlerCollection( );
         handlers.setHandlers( new Handler[]{ sh, putHandler } );
 
         server.setHandler( handlers );
         addConnectors( server );
-        server.start();
+        server.start( );
 
-        StreamingWagon wagon = (StreamingWagon) getWagon();
+        StreamingWagon wagon = (StreamingWagon) getWagon( );
         Repository testRepository = new Repository( "id", getRepositoryUrl( server ) );
         wagon.connect( testRepository, authInfo );
         try
@@ -848,12 +849,12 @@ public abstract class HttpWagonTestCase
             for ( int i = 0; i < putNumber; i++ )
             {
                 File sourceFile = new File( localRepositoryPath, "test-secured-put-resource" );
-                sourceFile.delete();
-                assertFalse( sourceFile.exists() );
+                sourceFile.delete( );
+                assertFalse( sourceFile.exists( ) );
 
                 File tempFile = File.createTempFile( "wagon", "tmp" );
-                tempFile.deleteOnExit();
-                FileUtils.fileWrite( tempFile.getAbsolutePath(), "put top secret" );
+                tempFile.deleteOnExit( );
+                FileUtils.fileWrite( tempFile.getAbsolutePath( ), "put top secret" );
 
                 try
                 {
@@ -861,36 +862,102 @@ public abstract class HttpWagonTestCase
                 }
                 finally
                 {
-                    tempFile.delete();
+                    tempFile.delete( );
                 }
 
-                assertEquals( "put top secret", FileUtils.fileRead( sourceFile.getAbsolutePath() ) );
+                assertEquals( "put top secret", FileUtils.fileRead( sourceFile.getAbsolutePath( ) ) );
             }
         }
         finally
         {
-            wagon.disconnect();
-            server.stop();
+            wagon.disconnect( );
+            server.stop( );
         }
         assertEquals( putNumber, putHandler.putCallNumber );
         testPreemptiveAuthentication( sh );
     }
 
-    protected abstract boolean supportPreemptiveAuthentication();
+    public void testSecuredPutFromStream( )
+        throws Exception
+    {
+        AuthenticationInfo authInfo = new AuthenticationInfo( );
+        authInfo.setUserName( "user" );
+        authInfo.setPassword( "secret" );
+        runTestSecuredPutFromStream( authInfo, 1 );
+    }
+
+    public void runTestSecuredPutFromStream( AuthenticationInfo authInfo, int putNumber )
+        throws Exception
+    {
+        String localRepositoryPath = FileTestUtils.getTestOutputDir( ).toString( );
+        Server server = new Server( 0 );
+
+        TestSecurityHandler sh = createSecurityHandler( );
+
+        PutHandler putHandler = new PutHandler( new File( localRepositoryPath ) );
+
+        HandlerCollection handlers = new HandlerCollection( );
+        handlers.setHandlers( new Handler[]{ sh, putHandler } );
+
+        server.setHandler( handlers );
+        addConnectors( server );
+        server.start( );
+
+        StreamingWagon wagon = (StreamingWagon) getWagon( );
+        Repository testRepository = new Repository( "id", getRepositoryUrl( server ) );
+        wagon.connect( testRepository, authInfo );
+        try
+        {
+            for ( int i = 0; i < putNumber; i++ )
+            {
+                File sourceFile = new File( localRepositoryPath, "test-secured-put-resource" );
+                sourceFile.delete( );
+                assertFalse( sourceFile.exists( ) );
+
+                File tempFile = File.createTempFile( "wagon", "tmp" );
+                tempFile.deleteOnExit( );
+                FileUtils.fileWrite( tempFile.getAbsolutePath( ), "put top secret" );
+
+                FileInputStream fileInputStream = new FileInputStream( tempFile );
+                try
+                {
+                    wagon.putFromStream( fileInputStream, "test-secured-put-resource" );
+                }
+                finally
+                {
+                    fileInputStream.close();
+                    tempFile.delete( );
+
+                }
+
+                assertEquals( "put top secret", FileUtils.fileRead( sourceFile.getAbsolutePath( ) ) );
+            }
+        }
+        finally
+        {
+            wagon.disconnect( );
+            server.stop( );
+        }
+        assertEquals( putNumber, putHandler.putCallNumber );
+        testPreemptiveAuthentication( sh );
+    }
+
+
+    protected abstract boolean supportPreemptiveAuthentication( );
 
     protected void testPreemptiveAuthentication( TestSecurityHandler sh )
     {
 
-        if ( supportPreemptiveAuthentication() )
+        if ( supportPreemptiveAuthentication( ) )
         {
             assertEquals( "not 1 security handler use " + sh.securityHandlerRequestReponses, 1,
-                          sh.securityHandlerRequestReponses.size() );
+                          sh.securityHandlerRequestReponses.size( ) );
             assertEquals( 200, sh.securityHandlerRequestReponses.get( 0 ).responseCode );
         }
         else
         {
             assertEquals( "not 2 security handler use " + sh.securityHandlerRequestReponses, 2,
-                          sh.securityHandlerRequestReponses.size() );
+                          sh.securityHandlerRequestReponses.size( ) );
             assertEquals( 401, sh.securityHandlerRequestReponses.get( 0 ).responseCode );
             assertEquals( 200, sh.securityHandlerRequestReponses.get( 1 ).responseCode );
 
@@ -934,29 +1001,29 @@ public abstract class HttpWagonTestCase
             throws IOException, ServletException
         {
             Request base_request =
-                request instanceof Request ? (Request) request : HttpConnection.getCurrentConnection().getRequest();
+                request instanceof Request ? (Request) request : HttpConnection.getCurrentConnection( ).getRequest( );
 
-            if ( base_request.isHandled() || !"PUT".equals( base_request.getMethod() ) )
+            if ( base_request.isHandled( ) || !"PUT".equals( base_request.getMethod( ) ) )
             {
                 return;
             }
 
             base_request.setHandled( true );
 
-            File file = new File( resourceBase, URLDecoder.decode( request.getPathInfo() ) );
-            file.getParentFile().mkdirs();
+            File file = new File( resourceBase, URLDecoder.decode( request.getPathInfo( ) ) );
+            file.getParentFile( ).mkdirs( );
             FileOutputStream out = new FileOutputStream( file );
-            ServletInputStream in = request.getInputStream();
+            ServletInputStream in = request.getInputStream( );
             try
             {
                 IOUtil.copy( in, out );
             }
             finally
             {
-                in.close();
-                out.close();
+                in.close( );
+                out.close( );
             }
-            System.out.println( "put file " + request.getPathInfo() );
+            System.out.println( "put file " + request.getPathInfo( ) );
             putCallNumber++;
             response.setStatus( HttpServletResponse.SC_CREATED );
         }
@@ -987,41 +1054,41 @@ public abstract class HttpWagonTestCase
     {
         private Map headers = Collections.EMPTY_MAP;
 
-        public TestHeaderHandler()
+        public TestHeaderHandler( )
         {
         }
 
         public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
             throws IOException, ServletException
         {
-            headers = new HashMap();
-            for ( Enumeration e = request.getHeaderNames(); e.hasMoreElements(); )
+            headers = new HashMap( );
+            for ( Enumeration e = request.getHeaderNames( ); e.hasMoreElements( ); )
             {
-                String name = (String) e.nextElement();
+                String name = (String) e.nextElement( );
                 headers.put( name, request.getHeader( name ) );
             }
 
             response.setContentType( "text/plain" );
             response.setStatus( HttpServletResponse.SC_OK );
-            response.getWriter().println( "Hello, World!" );
+            response.getWriter( ).println( "Hello, World!" );
 
             ( (Request) request ).setHandled( true );
         }
 
     }
 
-    protected TestSecurityHandler createSecurityHandler()
+    protected TestSecurityHandler createSecurityHandler( )
     {
-        Constraint constraint = new Constraint();
+        Constraint constraint = new Constraint( );
         constraint.setName( Constraint.__BASIC_AUTH );
         constraint.setRoles( new String[]{ "admin" } );
         constraint.setAuthenticate( true );
 
-        ConstraintMapping cm = new ConstraintMapping();
+        ConstraintMapping cm = new ConstraintMapping( );
         cm.setConstraint( constraint );
         cm.setPathSpec( "/*" );
 
-        TestSecurityHandler sh = new TestSecurityHandler();
+        TestSecurityHandler sh = new TestSecurityHandler( );
         HashUserRealm hashUserRealm = new HashUserRealm( "MyRealm" );
         hashUserRealm.put( "user", "secret" );
         hashUserRealm.addUserToRole( "user", "admin" );
@@ -1035,18 +1102,18 @@ public abstract class HttpWagonTestCase
     {
 
         public List<SecurityHandlerRequestReponse> securityHandlerRequestReponses =
-            new ArrayList<SecurityHandlerRequestReponse>();
+            new ArrayList<SecurityHandlerRequestReponse>( );
 
         @Override
         public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
             throws IOException, ServletException
         {
-            String method = request.getMethod();
+            String method = request.getMethod( );
             super.handle( target, request, response, dispatch );
             System.out.println( "method in SecurityHandler: " + method );
 
             securityHandlerRequestReponses.add(
-                new SecurityHandlerRequestReponse( method, ( (Response) response ).getStatus() ) );
+                new SecurityHandlerRequestReponse( method, ( (Response) response ).getStatus( ) ) );
         }
 
     }
@@ -1064,14 +1131,14 @@ public abstract class HttpWagonTestCase
         }
 
         @Override
-        public String toString()
+        public String toString( )
         {
-            final StringBuilder sb = new StringBuilder();
+            final StringBuilder sb = new StringBuilder( );
             sb.append( "SecurityHandlerRequestReponse" );
             sb.append( "{method='" ).append( method ).append( '\'' );
             sb.append( ", responseCode=" ).append( responseCode );
             sb.append( '}' );
-            return sb.toString();
+            return sb.toString( );
         }
     }
 }

Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java?rev=1179571&r1=1179570&r2=1179571&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java Thu Oct  6 11:13:09 2011
@@ -709,9 +709,25 @@ public abstract class AbstractHttpClient
         }
     }
 
+    @Override
+    public void putFromStream( InputStream stream, String destination )
+        throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
+    {
+        putFromStream( stream, destination, -1, -1 );
+    }
+
+    @Override
+    protected void putFromStream( InputStream stream, Resource resource )
+        throws TransferFailedException, AuthorizationException, ResourceDoesNotExistException
+    {
+        putFromStream( stream, resource.getName( ), -1, -1 );
+    }
+
+    @Override
     public void fillOutputData( OutputData outputData )
         throws TransferFailedException
     {
-        throw new IllegalStateException( "Should not be using the streaming wagon for HTTP PUT" );
+        // no needed in this implementation but throw an Exception if used
+        throw new IllegalStateException( "this wagon http client must not use fillOutputData" );
     }
 }

Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.java?rev=1179571&r1=1179570&r2=1179571&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-shared/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.java Thu Oct  6 11:13:09 2011
@@ -25,6 +25,8 @@ import org.apache.commons.httpclient.par
 import org.apache.commons.httpclient.params.HttpMethodParams;
 
 import junit.framework.TestCase;
+import org.apache.maven.wagon.OutputData;
+import org.apache.maven.wagon.TransferFailedException;
 
 public class AbstractHttpClientWagonTest
     extends TestCase
@@ -145,6 +147,12 @@ public class AbstractHttpClientWagonTest
     private static final class TestWagon
         extends AbstractHttpClientWagon
     {
+        @Override
+        public void fillOutputData( OutputData outputData )
+            throws TransferFailedException
+        {
+
+        }
     }
 
 }

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=1179571&r1=1179570&r2=1179571&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 Thu Oct  6 11:13:09 2011
@@ -108,7 +108,6 @@ public abstract class AbstractHttpClient
 
         private final File source;
 
-
         private RequestEntityImplementation( final InputStream stream, final Resource resource, final Wagon wagon,
                                              final File source )
             throws TransferFailedException
@@ -123,9 +122,10 @@ public abstract class AbstractHttpClient
                 try
                 {
                     this.source = File.createTempFile( "http-wagon.", ".tmp" );
-                    this.source.deleteOnExit();
+                    this.source.deleteOnExit( );
 
                     fos = new FileOutputStream( this.source );
+                    System.out.println( "write to file " + this.source.getAbsolutePath( ) );
                     IOUtil.copy( stream, fos );
                 }
                 catch ( IOException e )
@@ -143,22 +143,22 @@ public abstract class AbstractHttpClient
             this.wagon = wagon;
         }
 
-        public long getContentLength()
+        public long getContentLength( )
         {
-            return resource.getContentLength();
+            return resource.getContentLength( );
         }
 
-        public Header getContentType()
+        public Header getContentType( )
         {
             return null;
         }
 
-        public Header getContentEncoding()
+        public Header getContentEncoding( )
         {
             return null;
         }
 
-        public InputStream getContent()
+        public InputStream getContent( )
             throws IOException, IllegalStateException
         {
             FileInputStream fis = new FileInputStream( source );
@@ -166,12 +166,12 @@ public abstract class AbstractHttpClient
             return fis;
         }
 
-        public boolean isRepeatable()
+        public boolean isRepeatable( )
         {
             return true;
         }
 
-        public boolean isChunked()
+        public boolean isChunked( )
         {
             return false;
         }
@@ -183,7 +183,7 @@ public abstract class AbstractHttpClient
 
             TransferEvent transferEvent =
                 new TransferEvent( wagon, resource, TransferEvent.TRANSFER_PROGRESS, TransferEvent.REQUEST_PUT );
-            transferEvent.setTimestamp( System.currentTimeMillis() );
+            transferEvent.setTimestamp( System.currentTimeMillis( ) );
 
             FileInputStream fin = null;
             try
@@ -211,15 +211,15 @@ public abstract class AbstractHttpClient
                 IOUtil.close( fin );
             }
 
-            output.flush();
+            output.flush( );
         }
 
-        public boolean isStreaming()
+        public boolean isStreaming( )
         {
             return false;
         }
 
-        public void consumeContent()
+        public void consumeContent( )
             throws IOException
         {
         }
@@ -239,7 +239,7 @@ public abstract class AbstractHttpClient
     /**
      * @since 2.0
      */
-    protected ClientConnectionManager clientConnectionManager = new SingleClientConnManager();
+    protected ClientConnectionManager clientConnectionManager = new SingleClientConnManager( );
 
     /**
      * use http(s) connection pool mechanism.
@@ -285,7 +285,7 @@ public abstract class AbstractHttpClient
         else
         {
 
-            ThreadSafeClientConnManager threadSafeClientConnManager = new ThreadSafeClientConnManager();
+            ThreadSafeClientConnManager threadSafeClientConnManager = new ThreadSafeClientConnManager( );
             int maxPerRoute =
                 Integer.parseInt( System.getProperty( "maven.wagon.httpconnectionManager.maxPerRoute", "20" ) );
             threadSafeClientConnManager.setDefaultMaxPerRoute( maxPerRoute );
@@ -298,21 +298,21 @@ public abstract class AbstractHttpClient
                 try
                 {
                     SSLSocketFactory sslSocketFactory =
-                        new SSLSocketFactory( EasyX509TrustManager.createEasySSLContext(), sslAllowAll
-                            ? new EasyHostNameVerifier()
-                            : new BrowserCompatHostnameVerifier() );
+                        new SSLSocketFactory( EasyX509TrustManager.createEasySSLContext( ), sslAllowAll
+                            ? new EasyHostNameVerifier( )
+                            : new BrowserCompatHostnameVerifier( ) );
                     Scheme httpsScheme = new Scheme( "https", 443, sslSocketFactory );
 
-                    threadSafeClientConnManager.getSchemeRegistry().register( httpsScheme );
+                    threadSafeClientConnManager.getSchemeRegistry( ).register( httpsScheme );
                 }
                 catch ( IOException e )
                 {
-                    throw new RuntimeException( "failed to init SSLSocket Factory " + e.getMessage(), e );
+                    throw new RuntimeException( "failed to init SSLSocket Factory " + e.getMessage( ), e );
                 }
             }
             System.out.println( " wagon http use multi threaded http connection manager maxPerRoute "
-                                    + threadSafeClientConnManager.getDefaultMaxPerRoute() + ", max total "
-                                    + threadSafeClientConnManager.getMaxTotal() );
+                                    + threadSafeClientConnManager.getDefaultMaxPerRoute( ) + ", max total "
+                                    + threadSafeClientConnManager.getMaxTotal( ) );
 
             connectionManagerPooled = threadSafeClientConnManager;
         }
@@ -350,7 +350,7 @@ public abstract class AbstractHttpClient
         }
     }
 
-    public ClientConnectionManager getConnectionManager()
+    public ClientConnectionManager getConnectionManager( )
     {
         if ( !useClientManagerPooled )
         {
@@ -382,51 +382,52 @@ public abstract class AbstractHttpClient
 
     private HttpGet getMethod;
 
-    public void openConnectionInternal()
+    public void openConnectionInternal( )
     {
         repository.setUrl( getURL( repository ) );
-        client = new DefaultHttpClient( getConnectionManager() );
+        client = new DefaultHttpClient( getConnectionManager( ) );
 
         // WAGON-273: default the cookie-policy to browser compatible
-        client.getParams().setParameter( ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY );
+        client.getParams( ).setParameter( ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY );
 
         String username = null;
         String password = null;
 
         if ( authenticationInfo != null )
         {
-            username = authenticationInfo.getUserName();
+            username = authenticationInfo.getUserName( );
 
-            password = authenticationInfo.getPassword();
+            password = authenticationInfo.getPassword( );
         }
 
         if ( StringUtils.isNotEmpty( username ) && StringUtils.isNotEmpty( password ) )
         {
             Credentials creds = new UsernamePasswordCredentials( username, password );
 
-            String host = getRepository().getHost();
-            int port = getRepository().getPort() > -1 ? getRepository().getPort() : AuthScope.ANY_PORT;
+            String host = getRepository( ).getHost( );
+            int port = getRepository( ).getPort( ) > -1 ? getRepository( ).getPort( ) : AuthScope.ANY_PORT;
 
-            client.getCredentialsProvider().setCredentials( new AuthScope( host, port ), creds );
+            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 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 = new BasicHttpContext( );
             localContext.setAttribute( ClientContext.AUTH_CACHE, authCache );
         }
 
-        ProxyInfo proxyInfo = getProxyInfo( getRepository().getProtocol(), getRepository().getHost() );
+        ProxyInfo proxyInfo = getProxyInfo( getRepository( ).getProtocol( ), getRepository( ).getHost( ) );
         if ( proxyInfo != null )
         {
-            String proxyUsername = proxyInfo.getUserName();
-            String proxyPassword = proxyInfo.getPassword();
-            String proxyHost = proxyInfo.getHost();
-            int proxyPort = proxyInfo.getPort();
-            String proxyNtlmHost = proxyInfo.getNtlmHost();
-            String proxyNtlmDomain = proxyInfo.getNtlmDomain();
+            String proxyUsername = proxyInfo.getUserName( );
+            String proxyPassword = proxyInfo.getPassword( );
+            String proxyHost = proxyInfo.getHost( );
+            int proxyPort = proxyInfo.getPort( );
+            String proxyNtlmHost = proxyInfo.getNtlmHost( );
+            String proxyNtlmDomain = proxyInfo.getNtlmDomain( );
             if ( proxyHost != null )
             {
                 HttpHost proxy = new HttpHost( proxyHost, proxyPort );
@@ -443,22 +444,22 @@ public abstract class AbstractHttpClient
                         creds = new UsernamePasswordCredentials( proxyUsername, proxyPassword );
                     }
 
-                    int port = proxyInfo.getPort() > -1 ? proxyInfo.getPort() : AuthScope.ANY_PORT;
+                    int port = proxyInfo.getPort( ) > -1 ? proxyInfo.getPort( ) : AuthScope.ANY_PORT;
 
                     AuthScope authScope = new AuthScope( proxyHost, port );
-                    client.getCredentialsProvider().setCredentials( authScope, creds );
+                    client.getCredentialsProvider( ).setCredentials( authScope, creds );
                 }
 
-                client.getParams().setParameter( ConnRoutePNames.DEFAULT_PROXY, proxy );
+                client.getParams( ).setParameter( ConnRoutePNames.DEFAULT_PROXY, proxy );
             }
         }
     }
 
-    public void closeConnection()
+    public void closeConnection( )
     {
         if ( !useClientManagerPooled )
         {
-            getConnectionManager().shutdown();
+            getConnectionManager( ).shutdown( );
         }
     }
 
@@ -469,9 +470,9 @@ public abstract class AbstractHttpClient
 
         firePutInitiated( resource, source );
 
-        resource.setContentLength( source.length() );
+        resource.setContentLength( source.length( ) );
 
-        resource.setLastModified( source.lastModified() );
+        resource.setLastModified( source.lastModified( ) );
 
         put( null, resource, source );
     }
@@ -493,13 +494,19 @@ public abstract class AbstractHttpClient
     private void put( final InputStream stream, Resource resource, File source )
         throws TransferFailedException, AuthorizationException, ResourceDoesNotExistException
     {
-        StringBuilder url = new StringBuilder( getRepository().getUrl() );
-        String[] parts = StringUtils.split( resource.getName(), "/" );
+        put( resource, source, new RequestEntityImplementation( stream, resource, this, source ) );
+    }
+
+    private void put( Resource resource, File source, HttpEntity httpEntity )
+        throws TransferFailedException, AuthorizationException, ResourceDoesNotExistException
+    {
+        StringBuilder url = new StringBuilder( getRepository( ).getUrl( ) );
+        String[] parts = StringUtils.split( resource.getName( ), "/" );
         for ( String part : parts )
         {
             // TODO: Fix encoding...
             // url += "/" + URLEncoder.encode( parts[i], System.getProperty("file.encoding") );
-            if ( !url.toString().endsWith( "/" ) )
+            if ( !url.toString( ).endsWith( "/" ) )
             {
                 url.append( '/' );
             }
@@ -509,7 +516,7 @@ public abstract class AbstractHttpClient
         //Parent directories need to be created before posting
         try
         {
-            mkdirs( PathUtils.dirname( resource.getName() ) );
+            mkdirs( PathUtils.dirname( resource.getName( ) ) );
         }
         catch ( HttpException he )
         {
@@ -520,13 +527,13 @@ public abstract class AbstractHttpClient
             fireTransferError( resource, e, TransferEvent.REQUEST_GET );
         }
 
-        HttpPut putMethod = new HttpPut( url.toString() );
+        HttpPut putMethod = new HttpPut( url.toString( ) );
 
         firePutStarted( resource, source );
 
         try
         {
-            putMethod.setEntity( new RequestEntityImplementation( stream, resource, this, source ) );
+            putMethod.setEntity( httpEntity );
 
             HttpResponse response;
             try
@@ -537,17 +544,17 @@ public abstract class AbstractHttpClient
             {
                 fireTransferError( resource, e, TransferEvent.REQUEST_PUT );
 
-                throw new TransferFailedException( e.getMessage(), e );
+                throw new TransferFailedException( e.getMessage( ), e );
             }
             catch ( HttpException e )
             {
                 fireTransferError( resource, e, TransferEvent.REQUEST_PUT );
 
-                throw new TransferFailedException( e.getMessage(), e );
+                throw new TransferFailedException( e.getMessage( ), e );
             }
 
-            int statusCode = response.getStatusLine().getStatusCode();
-            String reasonPhrase = ", ReasonPhrase:" + response.getStatusLine().getReasonPhrase() + ".";
+            int statusCode = response.getStatusLine( ).getStatusCode( );
+            String reasonPhrase = ", ReasonPhrase:" + response.getStatusLine( ).getReasonPhrase( ) + ".";
             fireTransferDebug( url + " - Status code: " + statusCode + reasonPhrase );
 
             // Check that we didn't run out of retries.
@@ -569,7 +576,7 @@ public abstract class AbstractHttpClient
                 }
 
                 case HttpStatus.SC_FORBIDDEN:
-                    fireSessionConnectionRefused();
+                    fireSessionConnectionRefused( );
                     throw new AuthorizationException( "Access denied to: " + url + reasonPhrase );
 
                 case HttpStatus.SC_NOT_FOUND:
@@ -589,7 +596,7 @@ public abstract class AbstractHttpClient
         }
         finally
         {
-            putMethod.abort();
+            putMethod.abort( );
         }
     }
 
@@ -602,7 +609,7 @@ public abstract class AbstractHttpClient
     public boolean resourceExists( String resourceName )
         throws TransferFailedException, AuthorizationException
     {
-        String repositoryUrl = getRepository().getUrl();
+        String repositoryUrl = getRepository( ).getUrl( );
         String url = repositoryUrl + ( repositoryUrl.endsWith( "/" ) ? "" : "/" ) + resourceName;
         HttpHead headMethod = new HttpHead( url );
         HttpResponse response = null;
@@ -613,17 +620,17 @@ public abstract class AbstractHttpClient
         }
         catch ( IOException e )
         {
-            throw new TransferFailedException( e.getMessage(), e );
+            throw new TransferFailedException( e.getMessage( ), e );
         }
         catch ( HttpException e )
         {
-            throw new TransferFailedException( e.getMessage(), e );
+            throw new TransferFailedException( e.getMessage( ), e );
         }
 
         try
         {
-            statusCode = response.getStatusLine().getStatusCode();
-            String reasonPhrase = ", ReasonPhrase:" + response.getStatusLine().getReasonPhrase() + ".";
+            statusCode = response.getStatusLine( ).getStatusCode( );
+            String reasonPhrase = ", ReasonPhrase:" + response.getStatusLine( ).getReasonPhrase( ) + ".";
             switch ( statusCode )
             {
                 case HttpStatus.SC_OK:
@@ -655,18 +662,16 @@ public abstract class AbstractHttpClient
         }
         finally
         {
-            headMethod.abort();
+            headMethod.abort( );
         }
     }
 
     protected HttpResponse execute( HttpUriRequest httpMethod )
         throws HttpException, IOException
     {
-        int statusCode = SC_NULL;
-
         setParameters( httpMethod );
         setHeaders( httpMethod );
-        client.getParams().setParameter( CoreProtocolPNames.USER_AGENT, getUserAgent( httpMethod ) );
+        client.getParams( ).setParameter( CoreProtocolPNames.USER_AGENT, getUserAgent( httpMethod ) );
 
         return client.execute( httpMethod, localContext );
     }
@@ -677,16 +682,16 @@ public abstract class AbstractHttpClient
             httpConfiguration == null ? null : httpConfiguration.getMethodConfiguration( method );
         if ( config != null )
         {
-            HttpParams params = config.asMethodParams( method.getParams() );
+            HttpParams params = config.asMethodParams( method.getParams( ) );
             if ( params != null )
             {
                 method.setParams( params );
             }
         }
 
-        if ( config == null || config.getReadTimeout() == HttpMethodConfiguration.DEFAULT_CONNECTION_TIMEOUT )
+        if ( config == null || config.getReadTimeout( ) == HttpMethodConfiguration.DEFAULT_CONNECTION_TIMEOUT )
         {
-            method.getParams().setParameter( CoreConnectionPNames.SO_TIMEOUT, getTimeout() );
+            method.getParams( ).setParameter( CoreConnectionPNames.SO_TIMEOUT, getTimeout( ) );
         }
     }
 
@@ -694,7 +699,7 @@ public abstract class AbstractHttpClient
     {
         HttpMethodConfiguration config =
             httpConfiguration == null ? null : httpConfiguration.getMethodConfiguration( method );
-        if ( config == null || config.isUseDefaultHeaders() )
+        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" );
@@ -706,13 +711,13 @@ public abstract class AbstractHttpClient
 
         if ( httpHeaders != null )
         {
-            for ( Map.Entry<Object, Object> entry : httpHeaders.entrySet() )
+            for ( Map.Entry<Object, Object> entry : httpHeaders.entrySet( ) )
             {
-                method.addHeader( (String) entry.getKey(), (String) entry.getValue() );
+                method.addHeader( (String) entry.getKey( ), (String) entry.getValue( ) );
             }
         }
 
-        Header[] headers = config == null ? null : config.asRequestHeaders();
+        Header[] headers = config == null ? null : config.asRequestHeaders( );
         if ( headers != null )
         {
             for ( int i = 0; i < headers.length; i++ )
@@ -737,7 +742,7 @@ public abstract class AbstractHttpClient
 
         if ( config != null )
         {
-            return (String) config.getHeaders().get( "User-Agent" );
+            return (String) config.getHeaders( ).get( "User-Agent" );
         }
         return null;
     }
@@ -751,10 +756,10 @@ public abstract class AbstractHttpClient
      */
     protected String getURL( Repository repository )
     {
-        return repository.getUrl();
+        return repository.getUrl( );
     }
 
-    public HttpConfiguration getHttpConfiguration()
+    public HttpConfiguration getHttpConfiguration( )
     {
         return httpConfiguration;
     }
@@ -767,12 +772,12 @@ public abstract class AbstractHttpClient
     public void fillInputData( InputData inputData )
         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
     {
-        Resource resource = inputData.getResource();
+        Resource resource = inputData.getResource( );
 
-        String repositoryUrl = getRepository().getUrl();
-        String url = repositoryUrl + ( repositoryUrl.endsWith( "/" ) ? "" : "/" ) + resource.getName();
+        String repositoryUrl = getRepository( ).getUrl( );
+        String url = repositoryUrl + ( repositoryUrl.endsWith( "/" ) ? "" : "/" ) + resource.getName( );
         getMethod = new HttpGet( url );
-        long timestamp = resource.getLastModified();
+        long timestamp = resource.getLastModified( );
         if ( timestamp > 0 )
         {
             SimpleDateFormat fmt = new SimpleDateFormat( "EEE, dd-MMM-yy HH:mm:ss zzz", Locale.US );
@@ -792,18 +797,18 @@ public abstract class AbstractHttpClient
         {
             fireTransferError( resource, e, TransferEvent.REQUEST_GET );
 
-            throw new TransferFailedException( e.getMessage(), e );
+            throw new TransferFailedException( e.getMessage( ), e );
         }
         catch ( HttpException e )
         {
             fireTransferError( resource, e, TransferEvent.REQUEST_GET );
 
-            throw new TransferFailedException( e.getMessage(), e );
+            throw new TransferFailedException( e.getMessage( ), e );
         }
 
-        statusCode = response.getStatusLine().getStatusCode();
+        statusCode = response.getStatusLine( ).getStatusCode( );
 
-        String reasonPhrase = ", ReasonPhrase:" + response.getStatusLine().getReasonPhrase() + ".";
+        String reasonPhrase = ", ReasonPhrase:" + response.getStatusLine( ).getReasonPhrase( ) + ".";
 
         fireTransferDebug( url + " - Status code: " + statusCode + reasonPhrase );
 
@@ -827,15 +832,15 @@ public abstract class AbstractHttpClient
             }
 
             case HttpStatus.SC_FORBIDDEN:
-                fireSessionConnectionRefused();
+                fireSessionConnectionRefused( );
                 throw new AuthorizationException( "Access denied to: " + url + reasonPhrase );
 
             case HttpStatus.SC_UNAUTHORIZED:
-                fireSessionConnectionRefused();
+                fireSessionConnectionRefused( );
                 throw new AuthorizationException( "Not authorized" + reasonPhrase );
 
             case HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED:
-                fireSessionConnectionRefused();
+                fireSessionConnectionRefused( );
                 throw new AuthorizationException( "Not authorized by proxy" + reasonPhrase );
 
             case HttpStatus.SC_NOT_FOUND:
@@ -860,14 +865,14 @@ public abstract class AbstractHttpClient
         {
             try
             {
-                long contentLength = Integer.valueOf( contentLengthHeader.getValue() ).intValue();
+                long contentLength = Integer.valueOf( contentLengthHeader.getValue( ) ).intValue( );
 
                 resource.setContentLength( contentLength );
             }
             catch ( NumberFormatException e )
             {
                 fireTransferDebug(
-                    "error parsing content length header '" + contentLengthHeader.getValue() + "' " + e );
+                    "error parsing content length header '" + contentLengthHeader.getValue( ) + "' " + e );
             }
         }
 
@@ -879,7 +884,7 @@ public abstract class AbstractHttpClient
         {
             try
             {
-                lastModified = DateUtils.parseDate( lastModifiedHeader.getValue() ).getTime();
+                lastModified = DateUtils.parseDate( lastModifiedHeader.getValue( ) ).getTime( );
 
                 resource.setLastModified( lastModified );
             }
@@ -888,15 +893,15 @@ public abstract class AbstractHttpClient
                 fireTransferDebug( "Unable to parse last modified header" );
             }
 
-            fireTransferDebug( "last-modified = " + lastModifiedHeader.getValue() + " (" + lastModified + ")" );
+            fireTransferDebug( "last-modified = " + lastModifiedHeader.getValue( ) + " (" + lastModified + ")" );
         }
 
         Header contentEncoding = response.getFirstHeader( "Content-Encoding" );
-        boolean isGZipped = contentEncoding == null ? false : "gzip".equalsIgnoreCase( contentEncoding.getValue() );
+        boolean isGZipped = contentEncoding == null ? false : "gzip".equalsIgnoreCase( contentEncoding.getValue( ) );
 
         try
         {
-            is = response.getEntity().getContent();
+            is = response.getEntity( ).getContent( );
 
             if ( isGZipped )
             {
@@ -908,7 +913,7 @@ public abstract class AbstractHttpClient
             fireTransferError( resource, e, TransferEvent.REQUEST_GET );
 
             String msg =
-                "Error occurred while retrieving from remote repository:" + getRepository() + ": " + e.getMessage();
+                "Error occurred while retrieving from remote repository:" + getRepository( ) + ": " + e.getMessage( );
 
             throw new TransferFailedException( msg, e );
         }
@@ -920,17 +925,26 @@ public abstract class AbstractHttpClient
     {
         if ( getMethod != null )
         {
-            getMethod.abort();
+            getMethod.abort( );
         }
     }
 
-    public void fillOutputData( OutputData outputData )
-        throws TransferFailedException
+
+    @Override
+    public void putFromStream( InputStream stream, String destination )
+        throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
     {
-        throw new IllegalStateException( "Should not be using the streaming wagon for HTTP PUT" );
+        putFromStream( stream, destination, -1, -1 );
     }
 
-    public Properties getHttpHeaders()
+    @Override
+    protected void putFromStream( InputStream stream, Resource resource )
+        throws TransferFailedException, AuthorizationException, ResourceDoesNotExistException
+    {
+        putFromStream( stream, resource.getName( ), -1, -1 );
+    }
+
+    public Properties getHttpHeaders( )
     {
         return httpHeaders;
     }
@@ -939,4 +953,12 @@ public abstract class AbstractHttpClient
     {
         this.httpHeaders = httpHeaders;
     }
+
+    @Override
+    public void fillOutputData( OutputData outputData )
+        throws TransferFailedException
+    {
+        // no needed in this implementation but throw an Exception if used
+        throw new IllegalStateException( "this wagon http client must not use fillOutputData" );
+    }
 }

Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.java?rev=1179571&r1=1179570&r2=1179571&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/test/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagonTest.java Thu Oct  6 11:13:09 2011
@@ -25,6 +25,8 @@ import org.apache.http.Header;
 import org.apache.http.client.methods.HttpHead;
 import org.apache.http.client.params.ClientPNames;
 import org.apache.http.params.HttpParams;
+import org.apache.maven.wagon.OutputData;
+import org.apache.maven.wagon.TransferFailedException;
 
 public class AbstractHttpClientWagonTest
     extends TestCase
@@ -145,6 +147,12 @@ public class AbstractHttpClientWagonTest
     private static final class TestWagon
         extends AbstractHttpClientWagon
     {
+        @Override
+        public void fillOutputData( OutputData outputData )
+            throws TransferFailedException
+        {
+
+        }
     }
 
 }

Added: maven/wagon/trunk/wagon-providers/wagon-http/src/test/resources/log4j.xml
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http/src/test/resources/log4j.xml?rev=1179571&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http/src/test/resources/log4j.xml (added)
+++ maven/wagon/trunk/wagon-providers/wagon-http/src/test/resources/log4j.xml Thu Oct  6 11:13:09 2011
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~  http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+  <appender name="console" class="org.apache.log4j.ConsoleAppender">
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
+    </layout>
+  </appender>
+
+  <logger name="org.apache.http.wire">
+    <level value="debug"/>
+  </logger>
+  <logger name="org.apache.http.headers">
+    <level value="debug"/>
+  </logger>
+
+
+  <root>
+    <priority value ="info" />
+    <appender-ref ref="console" />
+  </root>
+
+</log4j:configuration>

Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/resources/log4j.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/resources/log4j.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision