diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeAutoConfiguration.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeAutoConfiguration.java index 27a3ef2aa..c9730be45 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeAutoConfiguration.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeAutoConfiguration.java @@ -32,7 +32,7 @@ import org.springframework.context.annotation.Configuration; @Configuration @AutoConfigureBefore(FunctionExporterAutoConfiguration.class) @ConditionalOnClass(DestinationResolver.class) -@ConditionalOnProperty(prefix = "spring.cloud.function.web.export", name = "enabled", matchIfMissing = true) +@ConditionalOnProperty(prefix = "spring.cloud.function.web.export", name = "enabled", matchIfMissing = false) public class CustomRuntimeAutoConfiguration { @Bean diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeInitializer.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeInitializer.java index 1e9ba5f42..a7b42505d 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeInitializer.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeInitializer.java @@ -27,25 +27,21 @@ import org.springframework.core.annotation.Order; * @author Dave Syer */ @Order(0) -public class CustomRuntimeInitializer - implements ApplicationContextInitializer { +public class CustomRuntimeInitializer implements ApplicationContextInitializer { @Override public void initialize(GenericApplicationContext context) { - Boolean enabled = context.getEnvironment() - .getProperty("spring.cloud.function.web.export.enabled", Boolean.class); - if (enabled != null) { + Boolean enabled = context.getEnvironment().getProperty("spring.cloud.function.web.export.enabled", + Boolean.class); + if (enabled == null || !enabled) { return; } - if (ContextFunctionCatalogInitializer.enabled && context.getEnvironment() - .getProperty("spring.functional.enabled", Boolean.class, false)) { - if (context.getBeanFactory().getBeanNamesForType(DestinationResolver.class, - false, false).length == 0) { - context.registerBean(LambdaDestinationResolver.class, - () -> new LambdaDestinationResolver()); + if (ContextFunctionCatalogInitializer.enabled + && context.getEnvironment().getProperty("spring.functional.enabled", Boolean.class, false)) { + if (context.getBeanFactory().getBeanNamesForType(DestinationResolver.class, false, false).length == 0) { + context.registerBean(LambdaDestinationResolver.class, () -> new LambdaDestinationResolver()); } - context.registerBean(CommandLineRunner.class, - () -> args -> CustomRuntimeAutoConfiguration.background()); + context.registerBean(CommandLineRunner.class, () -> args -> CustomRuntimeAutoConfiguration.background()); } } diff --git a/spring-cloud-function-samples/function-sample-aws-custom/pom.xml b/spring-cloud-function-samples/function-sample-aws-custom/pom.xml index a02334560..9e8e8645f 100644 --- a/spring-cloud-function-samples/function-sample-aws-custom/pom.xml +++ b/spring-cloud-function-samples/function-sample-aws-custom/pom.xml @@ -10,14 +10,14 @@ io.spring.sample function-sample-aws-custom - 2.0.0.RELEASE + 3.0.0.RELEASE lambda Demo project for Spring Cloud Function with custom AWS Lambda runtime 1.8 - 1.0.21.RELEASE - 2.2.0.BUILD-SNAPSHOT + 1.0.22.RELEASE + 3.0.0.BUILD-SNAPSHOT @@ -120,11 +120,6 @@ - - - com.sample.App - - src/assembly/zip.xml diff --git a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/source/FunctionExporterInitializer.java b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/source/FunctionExporterInitializer.java index a3ba12757..c20c94a16 100644 --- a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/source/FunctionExporterInitializer.java +++ b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/source/FunctionExporterInitializer.java @@ -33,13 +33,12 @@ import org.springframework.web.reactive.function.client.WebClient; * @since 2.0 * */ -class FunctionExporterInitializer - implements ApplicationContextInitializer { +class FunctionExporterInitializer implements ApplicationContextInitializer { @Override public void initialize(GenericApplicationContext context) { - if (ContextFunctionCatalogInitializer.enabled && context.getEnvironment() - .getProperty("spring.functional.enabled", Boolean.class, false) + if (ContextFunctionCatalogInitializer.enabled + && context.getEnvironment().getProperty("spring.functional.enabled", Boolean.class, false) && isExporting(context)) { registerWebClient(context); registerExport(context); @@ -47,25 +46,22 @@ class FunctionExporterInitializer } private void registerWebClient(GenericApplicationContext context) { - if (context.getBeanFactory().getBeanNamesForType(WebClient.Builder.class, false, - false).length == 0) { + if (context.getBeanFactory().getBeanNamesForType(WebClient.Builder.class, false, false).length == 0) { context.registerBean(WebClient.Builder.class, () -> WebClient.builder()); } } private boolean isExporting(GenericApplicationContext context) { - Boolean enabled = context.getEnvironment() - .getProperty("spring.cloud.function.web.export.enabled", Boolean.class); + Boolean enabled = context.getEnvironment().getProperty("spring.cloud.function.web.export.enabled", + Boolean.class); if (enabled != null) { return enabled; } if (ClassUtils.isPresent("org.springframework.web.context.WebApplicationContext", getClass().getClassLoader())) { - if (context instanceof WebApplicationContext - || context instanceof ReactiveWebApplicationContext + if (context instanceof WebApplicationContext || context instanceof ReactiveWebApplicationContext || context.getEnvironment() instanceof ConfigurableWebEnvironment - || context - .getEnvironment() instanceof ConfigurableReactiveWebEnvironment) { + || context.getEnvironment() instanceof ConfigurableReactiveWebEnvironment) { return false; } } @@ -75,34 +71,24 @@ class FunctionExporterInitializer private void registerExport(GenericApplicationContext context) { context.registerBean(ExporterProperties.class, () -> new ExporterProperties()); context.registerBean(FunctionExporterAutoConfiguration.class, - () -> new FunctionExporterAutoConfiguration( - context.getBean(ExporterProperties.class))); - if (context.getBeanFactory().getBeanNamesForType(DestinationResolver.class, false, - false).length == 0) { + () -> new FunctionExporterAutoConfiguration(context.getBean(ExporterProperties.class))); + if (context.getBeanFactory().getBeanNamesForType(DestinationResolver.class, false, false).length == 0) { context.registerBean(DestinationResolver.class, - () -> context.getBean(FunctionExporterAutoConfiguration.class) - .simpleDestinationResolver()); + () -> context.getBean(FunctionExporterAutoConfiguration.class).simpleDestinationResolver()); } - if (context.getBeanFactory().getBeanNamesForType(RequestBuilder.class, false, - false).length == 0) { - context.registerBean(RequestBuilder.class, - () -> context.getBean(FunctionExporterAutoConfiguration.class) - .simpleRequestBuilder(context.getEnvironment())); + if (context.getBeanFactory().getBeanNamesForType(RequestBuilder.class, false, false).length == 0) { + context.registerBean(RequestBuilder.class, () -> context.getBean(FunctionExporterAutoConfiguration.class) + .simpleRequestBuilder(context.getEnvironment())); } - if (context.getEnvironment() - .getProperty("spring.cloud.function.web.export.source.url") != null) { - context.registerBean("origin", FunctionRegistration.class, - () -> context.getBean(FunctionExporterAutoConfiguration.class) - .origin(context.getBean(WebClient.Builder.class))); + if (context.getEnvironment().getProperty("spring.cloud.function.web.export.source.url") != null) { + context.registerBean("origin", FunctionRegistration.class, () -> context + .getBean(FunctionExporterAutoConfiguration.class).origin(context.getBean(WebClient.Builder.class))); } - if (context.getEnvironment() - .getProperty("spring.cloud.function.web.export.sink.url") != null) { + if (context.getEnvironment().getProperty("spring.cloud.function.web.export.sink.url") != null) { context.registerBean(SupplierExporter.class, - () -> context.getBean(FunctionExporterAutoConfiguration.class) - .sourceForwarder(context.getBean(RequestBuilder.class), - context.getBean(DestinationResolver.class), - context.getBean(FunctionCatalog.class), - context.getBean(WebClient.Builder.class))); + () -> context.getBean(FunctionExporterAutoConfiguration.class).sourceForwarder( + context.getBean(RequestBuilder.class), context.getBean(DestinationResolver.class), + context.getBean(FunctionCatalog.class), context.getBean(WebClient.Builder.class))); } }