@@ -55,9 +55,15 @@ public abstract class FunctionContextUtils {
|
||||
}
|
||||
}
|
||||
|
||||
Class<?> beanClass = null;
|
||||
|
||||
|
||||
if (definition == null) {
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
beanClass = resolveBeanClass(definition);
|
||||
}
|
||||
|
||||
Object source = definition.getSource();
|
||||
|
||||
@@ -74,7 +80,7 @@ public abstract class FunctionContextUtils {
|
||||
}
|
||||
else {
|
||||
Type t = definition.getResolvableType().getType();
|
||||
if (!(t instanceof ParameterizedType) && definition.hasBeanClass()) {
|
||||
if (!(t instanceof ParameterizedType) && beanClass != null) {
|
||||
return FunctionTypeUtils.discoverFunctionTypeFromClass(definition.getBeanClass());
|
||||
}
|
||||
return t;
|
||||
@@ -99,6 +105,15 @@ public abstract class FunctionContextUtils {
|
||||
return params.toArray(new Class<?>[0]);
|
||||
}
|
||||
|
||||
private static Class<?> resolveBeanClass(AbstractBeanDefinition beanDefinition) {
|
||||
try {
|
||||
return beanDefinition.hasBeanClass() ? beanDefinition.getBeanClass() : ClassUtils.getDefaultClassLoader().loadClass(beanDefinition.getBeanClassName());
|
||||
}
|
||||
catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static Type findBeanType(AbstractBeanDefinition definition, String declaringClassName, String methodName) {
|
||||
Class<?> factory = ClassUtils.resolveClassName(declaringClassName, null);
|
||||
Class<?>[] params = getParamTypesFromBeanDefinitionFactory(factory, definition);
|
||||
|
||||
Reference in New Issue
Block a user