diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/ContextFunctionCatalogAutoConfiguration.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/ContextFunctionCatalogAutoConfiguration.java index dda20ffd1..5b5f9f958 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/ContextFunctionCatalogAutoConfiguration.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/ContextFunctionCatalogAutoConfiguration.java @@ -168,7 +168,7 @@ public class ContextFunctionCatalogAutoConfiguration { } } -abstract class ProxyWrapper { +abstract class ProxyWrapper { private ObjectMapper mapper; @@ -176,7 +176,7 @@ abstract class ProxyWrapper { private String name; - private Class type; + private Class type; private BeanDefinitionRegistry registry; @@ -200,26 +200,24 @@ abstract class ProxyWrapper { this.registry = registry; } - private Class findType(RootBeanDefinition definition) { + private Class findType(RootBeanDefinition definition) { StandardMethodMetadata source = (StandardMethodMetadata) definition.getSource(); ParameterizedType type = (ParameterizedType) (source.getIntrospectedMethod() .getGenericReturnType()); type = (ParameterizedType) type.getActualTypeArguments()[0]; Type param = type.getActualTypeArguments()[0]; - @SuppressWarnings("unchecked") - Class resolved = (Class) ClassUtils.resolveClassName(param.getTypeName(), + return ClassUtils.resolveClassName(param.getTypeName(), registry.getClass().getClassLoader()); - return resolved; } - public Class getType() { + public Class getType() { if (type == null) { type = findType((RootBeanDefinition) registry.getBeanDefinition(name)); } return type; } - public S fromJson(String value) { + public Object fromJson(String value) { try { return mapper.readValue(value, getType()); } @@ -239,7 +237,7 @@ abstract class ProxyWrapper { } -class ProxyFunction extends ProxyWrapper, Flux>> +class ProxyFunction extends ProxyWrapper, Flux>> implements Function, Flux> { @Autowired @@ -254,7 +252,7 @@ class ProxyFunction extends ProxyWrapper, Flux>> +class ProxySupplier extends ProxyWrapper>> implements Supplier> { @Autowired @@ -269,7 +267,7 @@ class ProxySupplier extends ProxyWrapper>> } -class ProxyConsumer extends ProxyWrapper>> +class ProxyConsumer extends ProxyWrapper>> implements Consumer> { @Autowired