diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java index 1e38359e9..db60eac4a 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java @@ -166,6 +166,7 @@ public class ContextFunctionCatalogAutoConfiguration { @Configuration(proxyBeanMethods = false) @ConditionalOnClass(name = "org.apache.avro.Schema") + @ConditionalOnProperty(value = "spring.cloud.stream.avro.enabled", havingValue = "true", matchIfMissing = true) static class AvroSchemaMessageConverterConfiguration { @Bean diff --git a/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfigurationConditionalLoadingTests.java b/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfigurationConditionalLoadingTests.java index ab94f742c..ebfd022b1 100644 --- a/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfigurationConditionalLoadingTests.java +++ b/spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfigurationConditionalLoadingTests.java @@ -37,6 +37,7 @@ import static org.mockito.Mockito.mock; * Tests the conditional loading aspects of the {@link ContextFunctionCatalogAutoConfiguration}. * * @author Chris Bono + * @author Soby Chacko */ public class ContextFunctionCatalogAutoConfigurationConditionalLoadingTests { @@ -58,6 +59,13 @@ public class ContextFunctionCatalogAutoConfigurationConditionalLoadingTests { .hasSingleBean(AvroSchemaMessageConverter.class)); } + @Test + void avroSchemaMessageConverterBeansNotLoadedWhenAvroOnClasspathButDisabledThroughProperty() { + contextRunner.withPropertyValues("spring.cloud.stream.avro.enabled:false") + .run((context) -> assertThat(context).doesNotHaveBean(AvroSchemaServiceManager.class) + .doesNotHaveBean(AvroSchemaMessageConverter.class)); + } + @Test void avroSchemaMessageConverterBeansNotLoadedWhenAvroNotOnClasspath() { contextRunner.withClassLoader(new FilteredClassLoader(Schema.class)).run((context) ->