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