From c1da67b938a66ba5dd5f7fe3d711c0be65c20dc9 Mon Sep 17 00:00:00 2001 From: Donghyeon Kim Date: Sat, 19 Nov 2022 17:22:36 +0900 Subject: [PATCH] Refactor constructor of ReflectiveFeign --- core/src/main/java/feign/AsyncFeign.java | 7 ++----- core/src/main/java/feign/Feign.java | 9 +++------ core/src/main/java/feign/ReflectiveFeign.java | 11 +++++++---- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/core/src/main/java/feign/AsyncFeign.java b/core/src/main/java/feign/AsyncFeign.java index d7151fb37..301e5defb 100644 --- a/core/src/main/java/feign/AsyncFeign.java +++ b/core/src/main/java/feign/AsyncFeign.java @@ -14,7 +14,6 @@ package feign; import feign.InvocationHandlerFactory.MethodHandler; -import feign.ReflectiveFeign.ParseHandlersByName; import feign.Logger.Level; import feign.Request.Options; import feign.Target.HardCodedTarget; @@ -208,11 +207,9 @@ public AsyncFeign build() { propagationPolicy, methodInfoResolver, new RequestTemplateFactoryResolver(encoder, queryMapEncoder), options, decoder, errorDecoder); - final ParseHandlersByName handlersByName = - new ParseHandlersByName<>(contract, - methodHandlerFactory); final ReflectiveFeign feign = - new ReflectiveFeign<>(handlersByName, invocationHandlerFactory, defaultContextSupplier); + new ReflectiveFeign<>(contract, methodHandlerFactory, invocationHandlerFactory, + defaultContextSupplier); return new AsyncFeign<>(feign); } } diff --git a/core/src/main/java/feign/Feign.java b/core/src/main/java/feign/Feign.java index 02bc5480b..5688bf513 100644 --- a/core/src/main/java/feign/Feign.java +++ b/core/src/main/java/feign/Feign.java @@ -13,7 +13,6 @@ */ package feign; -import feign.ReflectiveFeign.ParseHandlersByName; import feign.Request.Options; import feign.Target.HardCodedTarget; import feign.codec.Decoder; @@ -203,15 +202,13 @@ public Feign build() { final ResponseHandler responseHandler = new ResponseHandler(logLevel, logger, decoder, errorDecoder, dismiss404, closeAfterDecode, responseInterceptor); - MethodHandler.Factory synchronousMethodHandlerFactory = + MethodHandler.Factory methodHandlerFactory = new SynchronousMethodHandler.Factory(client, retryer, requestInterceptors, responseHandler, logger, logLevel, propagationPolicy, new RequestTemplateFactoryResolver(encoder, queryMapEncoder), options); - ParseHandlersByName handlersByName = - new ParseHandlersByName<>(contract, - synchronousMethodHandlerFactory); - return new ReflectiveFeign<>(handlersByName, invocationHandlerFactory, () -> null); + return new ReflectiveFeign<>(contract, methodHandlerFactory, invocationHandlerFactory, + () -> null); } } diff --git a/core/src/main/java/feign/ReflectiveFeign.java b/core/src/main/java/feign/ReflectiveFeign.java index 16fba31e1..1bbe0d667 100644 --- a/core/src/main/java/feign/ReflectiveFeign.java +++ b/core/src/main/java/feign/ReflectiveFeign.java @@ -30,10 +30,13 @@ public class ReflectiveFeign extends Feign { private final InvocationHandlerFactory factory; private final AsyncContextSupplier defaultContextSupplier; - ReflectiveFeign(ParseHandlersByName targetToHandlersByName, InvocationHandlerFactory factory, + ReflectiveFeign( + Contract contract, + MethodHandler.Factory methodHandlerFactory, + InvocationHandlerFactory invocationHandlerFactory, AsyncContextSupplier defaultContextSupplier) { - this.targetToHandlersByName = targetToHandlersByName; - this.factory = factory; + this.targetToHandlersByName = new ParseHandlersByName(contract, methodHandlerFactory); + this.factory = invocationHandlerFactory; this.defaultContextSupplier = defaultContextSupplier; } @@ -113,7 +116,7 @@ public String toString() { } } - static final class ParseHandlersByName { + private static final class ParseHandlersByName { private final Contract contract; private final MethodHandler.Factory factory;