diff --git a/hystrix/src/main/java/feign/hystrix/HystrixFeign.java b/hystrix/src/main/java/feign/hystrix/HystrixFeign.java index 6c4b8961..cf67f1da 100644 --- a/hystrix/src/main/java/feign/hystrix/HystrixFeign.java +++ b/hystrix/src/main/java/feign/hystrix/HystrixFeign.java @@ -38,14 +38,7 @@ public final class HystrixFeign { * @see #target(Class, String, Object) */ public T target(Target target, final T fallback) { - super.invocationHandlerFactory(new InvocationHandlerFactory() { - @Override - public InvocationHandler create(Target target, Map dispatch) { - return new HystrixInvocationHandler(target, dispatch, fallback); - } - }); - super.contract(new HystrixDelegatingContract(contract)); - return super.build().newInstance(target); + return buildWithFallback(fallback).newInstance(target); } /** @@ -100,7 +93,17 @@ public final class HystrixFeign { @Override public Feign build() { - super.invocationHandlerFactory(new HystrixInvocationHandler.Factory()); + return buildWithFallback(null); + } + + /** Configures components needed for hystrix integration. */ + Feign buildWithFallback(final Object nullableFallback) { + super.invocationHandlerFactory(new InvocationHandlerFactory() { + @Override public InvocationHandler create(Target target, + Map dispatch) { + return new HystrixInvocationHandler(target, dispatch, nullableFallback); + } + }); super.contract(new HystrixDelegatingContract(contract)); return super.build(); } diff --git a/hystrix/src/main/java/feign/hystrix/HystrixInvocationHandler.java b/hystrix/src/main/java/feign/hystrix/HystrixInvocationHandler.java index 99589acb..60c41339 100644 --- a/hystrix/src/main/java/feign/hystrix/HystrixInvocationHandler.java +++ b/hystrix/src/main/java/feign/hystrix/HystrixInvocationHandler.java @@ -19,7 +19,6 @@ import com.netflix.hystrix.HystrixCommand; import com.netflix.hystrix.HystrixCommandGroupKey; import com.netflix.hystrix.HystrixCommandKey; -import com.netflix.hystrix.HystrixCommandProperties; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -27,7 +26,6 @@ import java.lang.reflect.Proxy; import java.util.LinkedHashMap; import java.util.Map; -import feign.InvocationHandlerFactory; import feign.InvocationHandlerFactory.MethodHandler; import feign.Target; import rx.Completable; @@ -183,12 +181,4 @@ final class HystrixInvocationHandler implements InvocationHandler { public String toString() { return target.toString(); } - - static final class Factory implements InvocationHandlerFactory { - - @Override - public InvocationHandler create(Target target, Map dispatch) { - return new HystrixInvocationHandler(target, dispatch, null); - } - } -} \ No newline at end of file +}