GH-713 Add support for default function for HTTP

Resolves #713
This commit is contained in:
Oleg Zhurakousky
2021-07-14 14:46:21 +02:00
parent 6ae466b99e
commit ff7741ea74
9 changed files with 59 additions and 23 deletions

View File

@@ -25,6 +25,7 @@ import java.util.function.Supplier;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.boot.ApplicationContextFactory;
import org.springframework.boot.WebApplicationType;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextInitializer;
@@ -63,7 +64,7 @@ public class FunctionalSpringApplication
public FunctionalSpringApplication(Class<?>... primarySources) {
super(primarySources);
setApplicationContextClass(GenericApplicationContext.class);
setApplicationContextFactory(ApplicationContextFactory.ofContextClass(GenericApplicationContext.class));
if (ClassUtils.isPresent("org.springframework.web.reactive.DispatcherHandler",
null)) {
setWebApplicationType(WebApplicationType.REACTIVE);

View File

@@ -36,6 +36,7 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProce
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor;
import org.springframework.cloud.function.context.FunctionCatalog;
import org.springframework.cloud.function.context.FunctionProperties;
import org.springframework.cloud.function.context.FunctionRegistration;
import org.springframework.cloud.function.context.FunctionRegistry;
import org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry;
@@ -185,6 +186,7 @@ public class ContextFunctionCatalogInitializer implements ApplicationContextInit
ConversionService conversionService = new DefaultConversionService();
return new SimpleFunctionRegistry(conversionService, messageConverter, this.context.getBean(JsonMapper.class));
});
this.context.registerBean(FunctionProperties.class, () -> new FunctionProperties());
this.context.registerBean(FunctionRegistrationPostProcessor.class,
() -> new FunctionRegistrationPostProcessor(this.context.getAutowireCapableBeanFactory()
.getBeanProvider(FunctionRegistration.class)));