Browse Source

Add methodInfoResolver attribute to Coroutinebuilder (#1762)

* Add methodInfoResolver attribute to Coroutinebuilder

Work on the [feedback](https://github.com/OpenFeign/feign/pull/1754#discussion_r974700238) of PR #1754
pull/1763/head
Donghyeon Kim 2 years ago committed by GitHub
parent
commit
d42fcef2bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      kotlin/src/main/java/feign/kotlin/CoroutineFeign.java

9
kotlin/src/main/java/feign/kotlin/CoroutineFeign.java

@ -19,6 +19,7 @@ import feign.AsyncFeign; @@ -19,6 +19,7 @@ import feign.AsyncFeign;
import feign.BaseBuilder;
import feign.Client;
import feign.Experimental;
import feign.MethodInfoResolver;
import feign.Target;
import feign.Target.HardCodedTarget;
import java.lang.reflect.InvocationHandler;
@ -116,6 +117,7 @@ public class CoroutineFeign<C> { @@ -116,6 +117,7 @@ public class CoroutineFeign<C> {
private AsyncContextSupplier<C> defaultContextSupplier = () -> null;
private AsyncClient<C> client = new AsyncClient.Default<>(
new Client.Default(null, null), LazyInitializedExecutorService.instance);
private MethodInfoResolver methodInfoResolver = KotlinMethodInfo::createInstance;
@Deprecated
public CoroutineBuilder<C> defaultContextSupplier(Supplier<C> supplier) {
@ -133,6 +135,11 @@ public class CoroutineFeign<C> { @@ -133,6 +135,11 @@ public class CoroutineFeign<C> {
return this;
}
public CoroutineBuilder<C> methodInfoResolver(MethodInfoResolver methodInfoResolver) {
this.methodInfoResolver = methodInfoResolver;
return this;
}
public <T> T target(Class<T> apiType, String url) {
return target(new HardCodedTarget<>(apiType, url));
}
@ -167,7 +174,7 @@ public class CoroutineFeign<C> { @@ -167,7 +174,7 @@ public class CoroutineFeign<C> {
.responseInterceptor(responseInterceptor)
.invocationHandlerFactory(invocationHandlerFactory)
.defaultContextSupplier((AsyncContextSupplier<Object>) defaultContextSupplier)
.methodInfoResolver(KotlinMethodInfo::createInstance)
.methodInfoResolver(methodInfoResolver)
.build();
return new CoroutineFeign<>(asyncFeign);
}

Loading…
Cancel
Save