From 7eb8cac6633fc2cd6fb69b86aecd8d84459cf1d5 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 19 Aug 2019 18:09:55 +0200 Subject: [PATCH] Added test for previous commit --- .../deployer/FunctionArchiveDeployer.java | 3 +++ .../FunctionDeployerConfiguration.java | 1 + .../deployer/FunctionDeployerTests.java | 20 +++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionArchiveDeployer.java b/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionArchiveDeployer.java index 635a48bc2..88519a9fb 100644 --- a/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionArchiveDeployer.java +++ b/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionArchiveDeployer.java @@ -187,6 +187,9 @@ class FunctionArchiveDeployer extends JarLauncher { private boolean isBootApplicationWithMain() { try { + if (this.getArchive().getManifest() == null) { + return false; + } return StringUtils.hasText(this.getArchive().getManifest().getMainAttributes().getValue("Start-Class")); } catch (Exception e) { diff --git a/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionDeployerConfiguration.java b/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionDeployerConfiguration.java index 7f68381af..4634851c7 100644 --- a/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionDeployerConfiguration.java +++ b/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionDeployerConfiguration.java @@ -46,6 +46,7 @@ import org.springframework.core.env.ConfigurableEnvironment; * and {@link SmartLifecycle#stop()} operations. *
* @author Oleg Zhurakousky + * @author Eric Bottard * * @since 3.0 * diff --git a/spring-cloud-function-deployer/src/test/java/org/springframework/cloud/function/deployer/FunctionDeployerTests.java b/spring-cloud-function-deployer/src/test/java/org/springframework/cloud/function/deployer/FunctionDeployerTests.java index 2c6c81abd..c7d764498 100644 --- a/spring-cloud-function-deployer/src/test/java/org/springframework/cloud/function/deployer/FunctionDeployerTests.java +++ b/spring-cloud-function-deployer/src/test/java/org/springframework/cloud/function/deployer/FunctionDeployerTests.java @@ -86,6 +86,26 @@ public class FunctionDeployerTests { assertThat(results.get(1)).isEqualTo("STACY"); } + @Test + public void testWithSimplestJarExploaded() throws Exception { + String[] args = new String[] { + "--spring.cloud.function.location=target/it/simplestjar/target/classes", + "--spring.cloud.function.function-class=function.example.UpperCaseFunction" }; + + ApplicationContext context = SpringApplication.run(DeployerApplication.class, args); + FunctionCatalog catalog = context.getBean(FunctionCatalog.class); + Function function = catalog.lookup("upperCaseFunction"); + + assertThat(function.apply("bob")).isEqualTo("BOB"); + assertThat(function.apply("stacy")).isEqualTo("STACY"); + + Function, Flux> functionAsFlux = catalog.lookup("upperCaseFunction"); + + List results = functionAsFlux.apply(Flux.just("bob", "stacy")).collectList().block(); + assertThat(results.get(0)).isEqualTo("BOB"); + assertThat(results.get(1)).isEqualTo("STACY"); + } + /* * Target function `class UpperCaseFunction implements Function` * No Main/Start class present, no Spring configuration