Skip to content

Commit 11413f0

Browse files
committed
Refactor AsyncBuilder to build Feign directly
1 parent 76ed912 commit 11413f0

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

core/src/main/java/feign/AsyncFeign.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
*/
1414
package feign;
1515

16+
import feign.ReflectiveFeign.ParseHandlersByName;
1617
import feign.Logger.Level;
1718
import feign.Request.Options;
1819
import feign.Target.HardCodedTarget;
@@ -204,21 +205,19 @@ public AsyncFeign<C> build() {
204205
AsyncResponseHandler.class,
205206
capabilities);
206207

207-
208-
return new ReflectiveAsyncFeign<>(Feign.builder()
209-
.logLevel(logLevel)
210-
.client(stageExecution(activeContextHolder, client))
211-
.decoder(stageDecode(activeContextHolder, logger, logLevel, responseHandler))
212-
.forceDecoding() // force all handling through stageDecode
213-
.contract(contract)
214-
.logger(logger)
215-
.encoder(encoder)
216-
.queryMapEncoder(queryMapEncoder)
217-
.options(options)
218-
.requestInterceptors(requestInterceptors)
219-
.responseInterceptor(responseInterceptor)
220-
.invocationHandlerFactory(invocationHandlerFactory)
221-
.build(), defaultContextSupplier, activeContextHolder, methodInfoResolver);
208+
final SynchronousMethodHandler.Factory synchronousMethodHandlerFactory =
209+
new SynchronousMethodHandler.Factory(stageExecution(activeContextHolder, client), retryer,
210+
requestInterceptors,
211+
responseInterceptor, logger, logLevel, dismiss404, closeAfterDecode,
212+
propagationPolicy, true);
213+
final ParseHandlersByName handlersByName =
214+
new ParseHandlersByName(contract, options, encoder,
215+
stageDecode(activeContextHolder, logger, logLevel, responseHandler), queryMapEncoder,
216+
errorDecoder, synchronousMethodHandlerFactory);
217+
final ReflectiveFeign feign =
218+
new ReflectiveFeign(handlersByName, invocationHandlerFactory, queryMapEncoder);
219+
return new ReflectiveAsyncFeign<>(feign, defaultContextSupplier, activeContextHolder,
220+
methodInfoResolver);
222221
}
223222

224223
private Client stageExecution(

0 commit comments

Comments
 (0)