use of io.vertx.core.http.HttpClientOptions in project georocket by georocket.
the class ElasticsearchInstaller method doDownload.
/**
* Download a file
* @param downloadUrl the URL to download from
* @param dest the destination file
* @return a single emitting exactly one item once the file has been
* downloaded
*/
private Single<Void> doDownload(String downloadUrl, AsyncFile dest) {
ObservableFuture<Void> observable = RxHelper.observableFuture();
Handler<AsyncResult<Void>> handler = observable.toHandler();
HttpClientOptions options = new HttpClientOptions();
if (downloadUrl.startsWith("https")) {
options.setSsl(true);
}
HttpClient client = vertx.createHttpClient(options);
HttpClientRequest req = client.getAbs(downloadUrl);
req.exceptionHandler(t -> handler.handle(Future.failedFuture(t)));
req.handler(res -> {
if (res.statusCode() != 200) {
handler.handle(Future.failedFuture(new HttpException(res.statusCode(), res.statusMessage())));
return;
}
// get content-length
int length;
int[] read = { 0 };
int[] lastOutput = { 0 };
String contentLength = res.getHeader("Content-Length");
if (contentLength != null) {
length = Integer.parseInt(contentLength);
} else {
length = 0;
}
res.exceptionHandler(t -> handler.handle(Future.failedFuture(t)));
// download file contents, log progress
res.handler(buf -> {
read[0] += buf.length();
if (lastOutput[0] == 0 || read[0] - lastOutput[0] > 1024 * 2048) {
logProgress(length, read[0]);
lastOutput[0] = read[0];
}
dest.write(buf);
});
res.endHandler(v -> {
logProgress(length, read[0]);
handler.handle(Future.succeededFuture());
});
});
req.end();
return observable.toSingle();
}
use of io.vertx.core.http.HttpClientOptions in project incubator-servicecomb-java-chassis by apache.
the class TestVertxTLSBuilder method testbuildHttpClientOptions_ssl_withFactory.
@Test
public void testbuildHttpClientOptions_ssl_withFactory() {
ArchaiusUtils.setProperty("ssl.exist.sslOptionFactory", SSLOptionFactoryForTest.class.getName());
HttpClientOptions clientOptions = new HttpClientOptions();
VertxTLSBuilder.buildHttpClientOptions("exist", clientOptions);
Assert.assertTrue(clientOptions.isSsl());
Assert.assertTrue(clientOptions.isVerifyHost());
}
use of io.vertx.core.http.HttpClientOptions in project incubator-servicecomb-java-chassis by apache.
the class TestVertxTLSBuilder method testbuildHttpClientOptions.
@Test
public void testbuildHttpClientOptions() {
SSLOption option = SSLOption.buildFromYaml("rest.consumer");
SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
HttpClientOptions serverOptions = new HttpClientOptions();
VertxTLSBuilder.buildHttpClientOptions(option, custom, serverOptions);
Assert.assertEquals(serverOptions.getEnabledSecureTransportProtocols().toArray().length, 1);
Assert.assertEquals(serverOptions.isTrustAll(), true);
}
use of io.vertx.core.http.HttpClientOptions in project incubator-servicecomb-java-chassis by apache.
the class TestVertxTLSBuilder method testbuildClientOptionsBase.
@Test
public void testbuildClientOptionsBase() {
SSLOption option = SSLOption.buildFromYaml("rest.consumer");
SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
HttpClientOptions serverOptions = new HttpClientOptions();
VertxTLSBuilder.buildClientOptionsBase(option, custom, serverOptions);
Assert.assertEquals(serverOptions.getEnabledSecureTransportProtocols().toArray().length, 1);
Assert.assertEquals(serverOptions.isTrustAll(), true);
}
use of io.vertx.core.http.HttpClientOptions in project incubator-servicecomb-java-chassis by apache.
the class TestVertxTLSBuilder method testbuildClientOptionsBaseFileNull.
@Test
public void testbuildClientOptionsBaseFileNull() {
SSLOption option = SSLOption.buildFromYaml("rest.consumer");
option.setKeyStore(null);
option.setTrustStore(null);
option.setCrl(null);
SSLCustom custom = SSLCustom.createSSLCustom(option.getSslCustomClass());
HttpClientOptions serverOptions = new HttpClientOptions();
VertxTLSBuilder.buildClientOptionsBase(option, custom, serverOptions);
Assert.assertEquals(serverOptions.getEnabledSecureTransportProtocols().toArray().length, 1);
Assert.assertEquals(serverOptions.isTrustAll(), true);
}
Aggregations