in wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java [1579:1638]
public void runTestSecuredPutFromStream(AuthenticationInfo authInfo, int putNumber, boolean addSecurityHandler)
throws Exception {
String localRepositoryPath = FileTestUtils.getTestOutputDir().toString();
Server server = new Server();
TestSecurityHandler sh = createSecurityHandler();
PutHandler putHandler = new PutHandler(new File(localRepositoryPath));
if (addSecurityHandler) {
sh.setHandler(putHandler);
server.setHandler(sh);
} else {
server.setHandler(putHandler);
}
addConnector(server);
server.start();
StreamingWagon wagon = (StreamingWagon) getWagon();
Repository testRepository = new Repository("id", getRepositoryUrl(server));
if (addSecurityHandler) {
wagon.connect(testRepository, authInfo);
} else {
wagon.connect(testRepository);
}
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();
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);
} finally {
tempFile.delete();
}
assertEquals(content, FileUtils.fileRead(sourceFile.getAbsolutePath()));
}
} finally {
wagon.disconnect();
server.stop();
}
assertEquals(putNumber, putHandler.putCallNumber);
if (addSecurityHandler) {
testPreemptiveAuthenticationPut(sh, supportPreemptiveAuthenticationPut());
}
// ensure we didn't use chunked transfer which doesn't work on ngnix
for (DeployedResource deployedResource : putHandler.deployedResources) {
if (StringUtils.equalsIgnoreCase("chunked", deployedResource.transferEncoding)) {
fail("deployedResource use chunked: " + deployedResource);
}
}
}