in wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java [1092:1158]
public void testRedirectPutFailureNonRepeatableStream()
throws Exception
{
File repositoryDirectory = getRepositoryDirectory();
FileUtils.deleteDirectory( repositoryDirectory );
repositoryDirectory.mkdirs();
Server redirectServer = new Server( );
addConnector( redirectServer );
RedirectHandler redirectHandler =
new RedirectHandler( "See Other", HttpServletResponse.SC_SEE_OTHER, "/redirectRequest/foo",
null );
redirectServer.setHandler( redirectHandler );
redirectServer.start();
try
{
StreamingWagon wagon = (StreamingWagon) getWagon();
Properties params = new Properties();
params.put( "http.protocol.expect-continue", "%b,false" );
setHttpConfiguration( wagon, new Properties(), params );
Repository repository = new Repository( "foo", getRepositoryUrl( redirectServer ) );
wagon.connect( repository );
File sourceFile = new File( repositoryDirectory, "/redirectRequest/foo/test-secured-put-resource" );
sourceFile.delete();
assertFalse( sourceFile.exists() );
File tempFile = File.createTempFile( "wagon", "tmp" );
tempFile.deleteOnExit();
String content = "put top secret";
FileUtils.fileWrite( tempFile.getAbsolutePath(), content );
try ( FileInputStream fileInputStream = new FileInputStream( tempFile ) )
{
wagon.putFromStream( fileInputStream, "test-secured-put-resource", content.length(), -1 );
// This does not behave as expected because LightweightWagon does buffering by default
if ( wagon.getClass().getName().contains( "Lightweight" ) )
{
assertTrue( true );
}
else
{
fail();
}
}
catch ( TransferFailedException e )
{
assertTrue( true );
}
finally
{
wagon.disconnect();
tempFile.delete();
}
}
finally
{
redirectServer.stop();
}
}