in wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java [658:725]
public void testRedirectPutFromStreamWithFullUrl() throws Exception {
Server realServer = new Server();
addConnector(realServer);
File repositoryDirectory = getRepositoryDirectory();
FileUtils.deleteDirectory(repositoryDirectory);
repositoryDirectory.mkdirs();
PutHandler putHandler = new PutHandler(repositoryDirectory);
realServer.setHandler(putHandler);
realServer.start();
Server redirectServer = new Server();
addConnector(redirectServer);
String protocol = getProtocol();
// protocol is wagon protocol but in fact dav is http(s)
if (protocol.equals("dav")) {
protocol = "http";
}
if (protocol.equals("davs")) {
protocol = "https";
}
String redirectUrl = protocol + "://localhost:" + getLocalPort(realServer);
RedirectHandler redirectHandler =
new RedirectHandler("See Other", HttpServletResponse.SC_SEE_OTHER, redirectUrl, repositoryDirectory);
redirectServer.setHandler(redirectHandler);
redirectServer.start();
try {
StreamingWagon wagon = (StreamingWagon) getWagon();
Repository repository = new Repository("foo", getRepositoryUrl(redirectServer));
wagon.connect(repository);
File sourceFile = new File(repositoryDirectory, "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);
assertEquals(content, FileUtils.fileRead(sourceFile.getAbsolutePath()));
checkRequestResponseForRedirectPutWithFullUrl(redirectHandler, putHandler);
} finally {
wagon.disconnect();
tempFile.delete();
}
} finally {
realServer.stop();
redirectServer.stop();
}
}