Removed bridging and improved Binding registration for functions

polish
This commit is contained in:
Oleg Zhurakousky
2019-03-12 22:21:01 +01:00
parent feb7c2b4f1
commit 9dcf2712b5
2 changed files with 9 additions and 5 deletions

View File

@@ -39,6 +39,7 @@ import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.function.context.FunctionCatalog;
import org.springframework.cloud.function.context.FunctionRegistry;
@@ -47,7 +48,7 @@ import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.binder.BinderType;
import org.springframework.cloud.stream.binder.BinderTypeRegistry;
import org.springframework.cloud.stream.binder.DefaultBinderTypeRegistry;
import org.springframework.cloud.stream.binding.BindingBeanDefinitionRegistryUtils;
import org.springframework.cloud.stream.binding.BindableProxyFactory;
import org.springframework.cloud.stream.binding.CompositeMessageChannelConfigurer;
import org.springframework.cloud.stream.binding.MessageChannelConfigurer;
import org.springframework.cloud.stream.binding.MessageConverterConfigurer;
@@ -284,8 +285,11 @@ public class BinderFactoryConfiguration {
private void bind(Class<?> type, BeanDefinitionRegistry registry) {
if (!registry.containsBeanDefinition(type.getName())) {
BindingBeanDefinitionRegistryUtils.registerBindingTargetBeanDefinitions(type, type.getName(), registry);
BindingBeanDefinitionRegistryUtils.registerBindingTargetsQualifiedBeanDefinitions(type, type, registry);
RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(
BindableProxyFactory.class);
rootBeanDefinition.getConstructorArgumentValues()
.addGenericArgumentValue(type);
registry.registerBeanDefinition(type.getName(), rootBeanDefinition);
}
}

View File

@@ -150,7 +150,7 @@ public class IntegrationFlowFunctionSupport {
*/
public IntegrationFlowBuilder integrationFlowFromChannel(
SubscribableChannel inputChannel) {
IntegrationFlowBuilder flowBuilder = IntegrationFlows.from(inputChannel).bridge();
IntegrationFlowBuilder flowBuilder = IntegrationFlows.from(inputChannel);
return flowBuilder;
}
@@ -178,7 +178,7 @@ public class IntegrationFlowFunctionSupport {
}
}
IntegrationFlowBuilder flowBuilder = IntegrationFlows.from(inputChannel).bridge();
IntegrationFlowBuilder flowBuilder = IntegrationFlows.from(inputChannel);
if (!this.andThenFunction(flowBuilder, outputChannel, this.functionProperties)) {
flowBuilder = flowBuilder.channel(outputChannel);