diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java index b4b9763af..12143ca0e 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java @@ -88,16 +88,7 @@ public abstract class FunctionContextUtils { return param; } - private static Type findBeanType(AbstractBeanDefinition definition, String declaringClassName, String methodName) { - Class factory = ClassUtils.resolveClassName(declaringClassName, null); - Class[] params = getParamTypes(factory, definition); - Method method = ReflectionUtils.findMethod(factory, methodName, - params); - Type type = method.getGenericReturnType(); - return type; - } - - private static Class[] getParamTypes(Class factory, + public static Class[] getParamTypesFromBeanDefinitionFactory(Class factory, AbstractBeanDefinition definition) { if (definition instanceof RootBeanDefinition) { RootBeanDefinition root = (RootBeanDefinition) definition; @@ -115,6 +106,15 @@ public abstract class FunctionContextUtils { return params.toArray(new Class[0]); } + private static Type findBeanType(AbstractBeanDefinition definition, String declaringClassName, String methodName) { + Class factory = ClassUtils.resolveClassName(declaringClassName, null); + Class[] params = getParamTypesFromBeanDefinitionFactory(factory, definition); + Method method = ReflectionUtils.findMethod(factory, methodName, + params); + Type type = method.getGenericReturnType(); + return type; + } + private static Method[] getCandidateMethods(final Class factoryClass, final RootBeanDefinition mbd) { if (System.getSecurityManager() != null) {