Add global escape hatch for switching off functional beans

This is useful for example if the user is taking care of the
functional bean registration in some other way, and still wants to
use spring.functional.enabled=false to control that.
This commit is contained in:
Dave Syer
2018-12-13 09:31:23 +00:00
parent d89835bd80
commit 62b11a4a26
2 changed files with 13 additions and 8 deletions

View File

@@ -33,6 +33,7 @@ import org.springframework.boot.web.reactive.error.ErrorAttributes;
import org.springframework.cloud.function.context.FunctionCatalog;
import org.springframework.cloud.function.context.FunctionalSpringApplication;
import org.springframework.cloud.function.context.catalog.FunctionInspector;
import org.springframework.cloud.function.context.config.ContextFunctionCatalogInitializer;
import org.springframework.cloud.function.json.JsonMapper;
import org.springframework.cloud.function.web.BasicStringConverter;
import org.springframework.cloud.function.web.RequestProcessor;
@@ -78,10 +79,11 @@ class FunctionEndpointInitializer
@Override
public void initialize(GenericApplicationContext context) {
if (context.getEnvironment().getProperty(
FunctionalSpringApplication.SPRING_WEB_APPLICATION_TYPE,
WebApplicationType.class,
WebApplicationType.REACTIVE) == WebApplicationType.REACTIVE
if (ContextFunctionCatalogInitializer.enabled
&& context.getEnvironment().getProperty(
FunctionalSpringApplication.SPRING_WEB_APPLICATION_TYPE,
WebApplicationType.class,
WebApplicationType.REACTIVE) == WebApplicationType.REACTIVE
&& context.getEnvironment().getProperty("spring.functional.enabled",
Boolean.class, false)
&& ClassUtils.isPresent(