|
13 | 13 | */ |
14 | 14 | package feign; |
15 | 15 |
|
| 16 | +import feign.ReflectiveFeign.ParseHandlersByName; |
16 | 17 | import feign.Logger.Level; |
17 | 18 | import feign.Request.Options; |
18 | 19 | import feign.Target.HardCodedTarget; |
@@ -204,21 +205,19 @@ public AsyncFeign<C> build() { |
204 | 205 | AsyncResponseHandler.class, |
205 | 206 | capabilities); |
206 | 207 |
|
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); |
222 | 221 | } |
223 | 222 |
|
224 | 223 | private Client stageExecution( |
|
0 commit comments