Updated function bootstrapping based on SCF changes

This commit is contained in:
Oleg Zhurakousky
2019-05-07 13:18:47 +02:00
parent a9b1b4f2bb
commit 90448095eb
2 changed files with 7 additions and 1 deletions

View File

@@ -32,6 +32,7 @@ import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.SmartInitializingSingleton;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
@@ -277,7 +278,10 @@ public class BinderFactoryConfiguration {
private String determineFunctionName(FunctionCatalog catalog, Environment environment) {
String name = environment.getProperty("spring.cloud.stream.function.definition");
if (!StringUtils.hasText(name) && catalog.size() == 1) {
if (!StringUtils.hasText(name) && catalog.size() == 0) {
((SmartInitializingSingleton) catalog).afterSingletonsInstantiated();
}
if (!StringUtils.hasText(name) && catalog.size() >= 1 && catalog.size() <= 2) {
name = ((FunctionInspector) catalog).getName(catalog.lookup(""));
if (StringUtils.hasText(name)) {
((StandardEnvironment) environment).getSystemProperties()

View File

@@ -20,6 +20,7 @@ import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
import org.springframework.beans.factory.SmartInitializingSingleton;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -59,6 +60,7 @@ public class FunctionConfiguration {
CompositeMessageConverterFactory messageConverterFactory,
StreamFunctionProperties functionProperties,
BindingServiceProperties bindingServiceProperties) {
((SmartInitializingSingleton) functionCatalog).afterSingletonsInstantiated();
return new IntegrationFlowFunctionSupport(functionCatalog, functionInspector,
messageConverterFactory, functionProperties, bindingServiceProperties);
}