Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -143,11 +143,6 @@ private SocketConfig createSocketConfig(HttpConfig config) {
return SocketConfig.custom().setSoTimeout(config.getRequestTimeoutMillis()).build();
}

@Override
public HttpResponse execute(HttpRequest request) throws HttpRuntimeException {
return execute(Preconditions.checkNotNull(request), Options.DEFAULT);
}

@Override
public HttpResponse execute(HttpRequest request, Options options)
throws HttpRuntimeException {
Expand Down
37 changes: 34 additions & 3 deletions HorizonCore/src/main/java/com/hubspot/horizon/AsyncHttpClient.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,45 @@
package com.hubspot.horizon;

import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
import com.hubspot.horizon.HttpRequest.Options;
import java.io.Closeable;

public interface AsyncHttpClient extends Closeable {
ListenableFuture<HttpResponse> execute(HttpRequest request);
ListenableFuture<HttpResponse> execute(HttpRequest request, Options options);
default ListenableFuture<HttpResponse> execute(HttpRequest request) {
return execute(request, Options.DEFAULT);
}

default ListenableFuture<HttpResponse> execute(HttpRequest request, Options options) {
SettableFuture<HttpResponse> responseFuture = SettableFuture.create();

try {
execute(
request,
options,
new Callback() {
@Override
public void completed(HttpResponse response) {
responseFuture.set(response);
}

@Override
public void failed(Exception e) {
responseFuture.setException(e);
}
}
);
} catch (HttpRuntimeException e) {
responseFuture.setException(e);
}

return responseFuture;
}

default void execute(HttpRequest request, Callback callback) {
execute(request, Options.DEFAULT, callback);
}

void execute(HttpRequest request, Callback callback);
void execute(HttpRequest request, Options options, Callback callback);

interface Callback {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
import java.io.Closeable;

public interface HttpClient extends Closeable {
HttpResponse execute(HttpRequest request) throws HttpRuntimeException;
default HttpResponse execute(HttpRequest request) throws HttpRuntimeException {
return execute(request, Options.DEFAULT);
}

HttpResponse execute(HttpRequest request, Options options) throws HttpRuntimeException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public Options getOptions() {

public static class Options {

public static Options DEFAULT = new Options();
public static final Options DEFAULT = new Options();

private Optional<Integer> maxRetries = Optional.absent();
private Optional<Integer> initialRetryBackoffSeconds = Optional.absent();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,21 +108,11 @@ public NingAsyncHttpClient(HttpConfig config) {
this.mapper = config.getObjectMapper();
}

@Override
public ListenableFuture<HttpResponse> execute(HttpRequest request) {
return execute(Preconditions.checkNotNull(request), Options.DEFAULT);
}

@Override
public ListenableFuture<HttpResponse> execute(HttpRequest request, Options options) {
return internalExecute(request, options, EmptyCallback.INSTANCE);
}

@Override
public void execute(HttpRequest request, Callback callback) {
execute(Preconditions.checkNotNull(request), Options.DEFAULT, callback);
}

@Override
public void execute(HttpRequest request, Options options, Callback callback) {
internalExecute(request, options, callback);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,6 @@ public NingHttpClient(HttpConfig config) {
this.delegate = new NingAsyncHttpClient(Preconditions.checkNotNull(config));
}

@Override
public HttpResponse execute(HttpRequest request) throws HttpRuntimeException {
return execute(Preconditions.checkNotNull(request), Options.DEFAULT);
}

@Override
public HttpResponse execute(HttpRequest request, Options options)
throws HttpRuntimeException {
Expand Down