package brave.httpasyncclient;
import brave.http.HttpClientBenchmarks;
import brave.http.HttpTracing;
import java.io.IOException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
import org.apache.http.impl.nio.client.HttpAsyncClients;
import org.apache.http.util.EntityUtils;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
public class ApacheHttpAsyncClientBenchmarks extends
HttpClientBenchmarks<CloseableHttpAsyncClient> {
@Override protected CloseableHttpAsyncClient newClient(HttpTracing httpTracing) {
CloseableHttpAsyncClient result = TracingHttpAsyncClientBuilder.create(httpTracing).build();
result.start();
return result;
}
@Override protected CloseableHttpAsyncClient newClient() {
CloseableHttpAsyncClient result = HttpAsyncClients.custom().build();
result.start();
return result;
}
@Override protected void get(CloseableHttpAsyncClient client) throws Exception {
EntityUtils.consume(client.execute(new HttpGet(baseUrl()), null).get().getEntity());
}
@Override protected void close(CloseableHttpAsyncClient client) throws IOException {
client.close();
}
// Convenience main entry-point
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(".*" + ApacheHttpAsyncClientBenchmarks.class.getSimpleName() + ".*")
.build();
new Runner(opt).run();
}
}