diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogInitializer.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogInitializer.java index 366079f57..a92d567fc 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogInitializer.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogInitializer.java @@ -52,10 +52,12 @@ public class ContextFunctionCatalogInitializer public static final String IGNORE_BACKGROUNDPREINITIALIZER_PROPERTY_NAME = "spring.backgroundpreinitializer.ignore"; + public static boolean enabled = true; + @Override public void initialize(GenericApplicationContext applicationContext) { - if (applicationContext.getEnvironment().getProperty("spring.functional.enabled", - Boolean.class, false)) { + if (enabled && applicationContext.getEnvironment() + .getProperty("spring.functional.enabled", Boolean.class, false)) { ContextFunctionCatalogBeanRegistrar registrar = new ContextFunctionCatalogBeanRegistrar( applicationContext); applicationContext.addBeanFactoryPostProcessor(registrar); @@ -223,9 +225,10 @@ public class ContextFunctionCatalogInitializer } } - + public static class DummyProcessor { - public void setMetadataReaderFactory(MetadataReaderFactory obj) {} + public void setMetadataReaderFactory(MetadataReaderFactory obj) { + } } } diff --git a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/function/FunctionEndpointInitializer.java b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/function/FunctionEndpointInitializer.java index c78c470cb..2e08bdbb7 100644 --- a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/function/FunctionEndpointInitializer.java +++ b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/function/FunctionEndpointInitializer.java @@ -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(